1{ 2 "version": "1.0", 3 "content": [ 4 { 5 "type": "function", 6 "value": "^printk.*$", 7 "properties":{ 8 "pointee_write": "1..=never", 9 "taken": "" 10 } 11 }, 12 { 13 "type": "function", 14 "value": "^debugtrace_printk.*$", 15 "properties":{ 16 "pointee_write": "1..=never", 17 "taken": "" 18 } 19 }, 20 { 21 "type": "function", 22 "value": "^panic.*$", 23 "properties":{ 24 "pointee_write": "1..=never", 25 "taken": "" 26 } 27 }, 28 { 29 "type": "macro", 30 "value": "^domain_crash$", 31 "properties":{ 32 "pointee_write": "2..=never", 33 "taken": "" 34 } 35 }, 36 { 37 "type": "macro", 38 "value": "^(g?d|mm_)?printk$", 39 "properties":{ 40 "pointee_write": "2..=never", 41 "taken": "" 42 } 43 }, 44 { 45 "type": "macro", 46 "value": "^guest_bug_on_failed$", 47 "properties":{ 48 "pointee_write": "1=never", 49 "taken": "" 50 } 51 }, 52 { 53 "type": "macro", 54 "value": "^spin_lock_init_prof$", 55 "properties":{ 56 "pointee_write": "2=never", 57 "taken": "" 58 } 59 }, 60 { 61 "type": "macro", 62 "value": "^sched_test_func$", 63 "properties":{ 64 "pointee_write": "1..=never", 65 "taken": "" 66 } 67 }, 68 { 69 "type": "macro", 70 "value": "^dev_(info|warn)$", 71 "properties":{ 72 "pointee_write": "1..=never", 73 "taken": "" 74 } 75 }, 76 { 77 "type": "macro", 78 "value": "^PAGING_DEBUG$", 79 "properties":{ 80 "pointee_write": "1..=never", 81 "taken": "" 82 } 83 }, 84 { 85 "type": "macro", 86 "value": "^ACPI_(WARNING|ERROR|INFO)$", 87 "properties":{ 88 "pointee_write": "1..=never", 89 "taken": "" 90 } 91 }, 92 { 93 "type": "function", 94 "value": "^fdt_get_property_by_offset_.*$", 95 "properties":{ 96 "pointee_write": "3=always", 97 "pointee_read": "3=never", 98 "taken": "" 99 } 100 }, 101 { 102 "type": "function", 103 "value": "^read_atomic_size.*$", 104 "properties":{ 105 "pointee_write": "2=always", 106 "pointee_read": "2=never", 107 "taken": "" 108 } 109 }, 110 { 111 "type": "function", 112 "value": "^device_tree_get_reg.*$", 113 "properties":{ 114 "pointee_write": "4..=always", 115 "pointee_read": "4..=never", 116 "taken": "" 117 } 118 }, 119 { 120 "type": "function", 121 "value": "^dt_get_range.*$", 122 "properties":{ 123 "pointee_write": "3..=always", 124 "pointee_read": "3..=never", 125 "taken": "" 126 } 127 }, 128 { 129 "type": "function", 130 "value": "^parse_static_mem_prop.*$", 131 "properties":{ 132 "pointee_write": "2..=always", 133 "pointee_read": "2..=never", 134 "taken": "" 135 } 136 }, 137 { 138 "type": "function", 139 "value": "^get_ttbr_and_gran_64bit.*$", 140 "properties":{ 141 "pointee_write": "1..2=always", 142 "pointee_read": "1..2=never", 143 "taken": "" 144 } 145 }, 146 { 147 "type": "function", 148 "value": "^hvm_emulate_init_once.*$", 149 "properties":{ 150 "pointee_write": "1=always", 151 "pointee_read": "1=never", 152 "taken": "" 153 } 154 }, 155 { 156 "type": "function", 157 "value": "^__vmread.*$", 158 "properties":{ 159 "pointee_write": "2=always", 160 "pointee_read": "2=never", 161 "taken": "" 162 } 163 }, 164 { 165 "type": "function", 166 "value": "^hvm_pci_decode_addr.*$", 167 "properties":{ 168 "pointee_write": "3=always", 169 "pointee_read": "3=never", 170 "taken": "" 171 } 172 }, 173 { 174 "type": "function", 175 "value": "^vpci_mmcfg_decode_addr.*$", 176 "properties":{ 177 "pointee_write": "3=always", 178 "pointee_read": "3=never", 179 "taken": "" 180 } 181 }, 182 { 183 "type": "function", 184 "value": "^x86emul_decode.*$", 185 "properties":{ 186 "pointee_write": "1=always", 187 "pointee_read": "1=never", 188 "taken": "" 189 } 190 }, 191 { 192 "type": "function", 193 "value": "^unmap_grant_ref.*$", 194 "properties":{ 195 "pointee_write": "2=always", 196 "pointee_read": "2=never", 197 "taken": "" 198 } 199 }, 200 { 201 "type": "function", 202 "value": "^arm_smmu_cmdq_build_cmd.*$", 203 "properties":{ 204 "pointee_write": "1=always", 205 "pointee_read": "1=never", 206 "taken": "" 207 } 208 }, 209 { 210 "type": "function", 211 "value": "^pci_size_mem_bar.*$", 212 "properties":{ 213 "pointee_write": "4=always", 214 "pointee_read": "4=never", 215 "taken": "" 216 } 217 }, 218 { 219 "type": "function", 220 "value": "^_hvm_read_entry.*$", 221 "properties":{ 222 "pointee_write": "2=always", 223 "pointee_read": "2=never", 224 "taken": "" 225 } 226 }, 227 { 228 "type": "function", 229 "value": "^hvm_map_guest_frame_rw.*$", 230 "properties":{ 231 "pointee_write": "3=always", 232 "pointee_read": "3=never", 233 "taken": "" 234 } 235 }, 236 { 237 "type": "function", 238 "value": "^guest_cpuid.*$", 239 "properties":{ 240 "pointee_write": "4=always", 241 "pointee_read": "4=never", 242 "taken": "" 243 } 244 }, 245 { 246 "type": "function", 247 "value": "^epte_get_entry_emt.*$", 248 "properties":{ 249 "pointee_write": "5=always", 250 "pointee_read": "5=never", 251 "taken": "" 252 } 253 }, 254 { 255 "type": "function", 256 "value": "^mcheck_mca_logout.*$", 257 "properties":{ 258 "pointee_write": "3=always", 259 "pointee_read": "3=never", 260 "taken": "" 261 } 262 }, 263 { 264 "type": "function", 265 "value": "^set_field_in_reg_u32.*$", 266 "properties":{ 267 "pointee_write": "5=always", 268 "pointee_read": "5=never", 269 "taken": "" 270 } 271 }, 272 { 273 "type": "function", 274 "value": "^alloc_affinity_masks.*$", 275 "properties":{ 276 "pointee_write": "1=always", 277 "pointee_read": "1=never", 278 "taken": "" 279 } 280 }, 281 { 282 "type": "function", 283 "value": "^xasprintf.*$", 284 "properties":{ 285 "pointee_write": "1=always", 286 "pointee_read": "1=never", 287 "taken": "" 288 } 289 }, 290 { 291 "type": "function", 292 "value": "^find_non_smt.*$", 293 "properties":{ 294 "pointee_write": "2=always", 295 "pointee_read": "2=never", 296 "taken": "" 297 } 298 }, 299 { 300 "type": "function", 301 "value": "^call_rcu.*$", 302 "properties":{ 303 "pointee_write": "1=always", 304 "pointee_read": "1=never", 305 "taken": "" 306 } 307 }, 308 { 309 "type": "function", 310 "value": "^getdomaininfo.*$", 311 "properties":{ 312 "pointee_write": "2=always", 313 "pointee_read": "2=never", 314 "taken": "" 315 } 316 }, 317 { 318 "type": "function", 319 "value": "^MAPPING_(INSERT|SEARCH)\\(.*$", 320 "properties":{ 321 "pointee_write": "2..=always", 322 "pointee_read": "2..=never", 323 "taken": "" 324 } 325 }, 326 { 327 "type": "function", 328 "value": "^FormatDec.*$", 329 "properties":{ 330 "pointee_write": "2=always", 331 "pointee_read": "2=never", 332 "taken": "" 333 } 334 }, 335 { 336 "type": "function", 337 "value": "^FormatHex.*$", 338 "properties":{ 339 "pointee_write": "3=always", 340 "pointee_read": "3=never", 341 "taken": "" 342 } 343 }, 344 { 345 "type": "function", 346 "value": "^p2m_get_ioreq_server.*$", 347 "properties":{ 348 "pointee_write": "2=always", 349 "pointee_read": "2=never", 350 "taken": "" 351 } 352 }, 353 { 354 "type": "function", 355 "value": "^elf_memset_unchecked.*$", 356 "properties":{ 357 "pointee_write": "1=always", 358 "pointee_read": "1=never", 359 "taken": "" 360 } 361 }, 362 { 363 "type": "function", 364 "value": "^set_iommu_pte_present.*$", 365 "properties":{ 366 "pointee_write": "7=always", 367 "pointee_read": "7=never", 368 "taken": "" 369 } 370 }, 371 { 372 "type": "function", 373 "value": "^clear_iommu_pte_present.*$", 374 "properties":{ 375 "pointee_write": "4=always", 376 "pointee_read": "4=never", 377 "taken": "" 378 } 379 }, 380 { 381 "type": "function", 382 "value": "^vcpu_runstate_get.*$", 383 "properties":{ 384 "pointee_write": "2=always", 385 "pointee_read": "2=never", 386 "taken": "" 387 } 388 }, 389 { 390 "type": "function", 391 "value": "^va_start.*$", 392 "properties":{ 393 "pointee_write": "1=always", 394 "pointee_read": "1=never", 395 "taken": "" 396 } 397 }, 398 { 399 "type": "function", 400 "value": "^sgi_target_init.*$", 401 "properties":{ 402 "pointee_write": "1=always", 403 "pointee_read": "1=never", 404 "taken": "" 405 } 406 }, 407 { 408 "type": "function", 409 "value": "^get_hw_residencies.*$", 410 "properties":{ 411 "pointee_write": "2=always", 412 "pointee_read": "2=never", 413 "taken": "" 414 } 415 }, 416 { 417 "type": "function", 418 "value": "^x86_cpu_policy_to_featureset.*$", 419 "properties":{ 420 "pointee_write": "2=always", 421 "pointee_read": "2=never", 422 "taken": "" 423 } 424 }, 425 { 426 "type": "function", 427 "value": "^simple_strtou?ll?\\(.*$", 428 "properties":{ 429 "pointee_write": "2=always", 430 "pointee_read": "2=never", 431 "taken": "" 432 } 433 }, 434 { 435 "type": "function", 436 "value": "^msi_compose_msg.*$", 437 "properties":{ 438 "pointee_write": "3=always", 439 "pointee_read": "3=never", 440 "taken": "" 441 } 442 }, 443 { 444 "type": "function", 445 "value": "^print_tainted.*$", 446 "properties":{ 447 "pointee_write": "1=always", 448 "pointee_read": "1=never", 449 "taken": "" 450 } 451 }, 452 { 453 "type": "function", 454 "value": "^get_hvm_registers.*$", 455 "properties":{ 456 "pointee_write": "3=always", 457 "pointee_read": "3=never", 458 "taken": "" 459 } 460 }, 461 { 462 "type": "function", 463 "value": "^x86_insn_modrm.*$", 464 "properties":{ 465 "pointee_write": "2..3=always", 466 "pointee_read": "2..3=never", 467 "taken": "" 468 } 469 }, 470 { 471 "type": "function", 472 "value": "^cpuid_count_leaf.*$", 473 "properties":{ 474 "pointee_write": "3=always", 475 "pointee_read": "3=never", 476 "taken": "" 477 } 478 }, 479 { 480 "type": "function", 481 "value": "^rcu_lock_remote_domain_by_id.*$", 482 "properties":{ 483 "pointee_write": "2=always", 484 "pointee_read": "2=never", 485 "taken": "" 486 } 487 }, 488 { 489 "type": "function", 490 "value": "^cpuid_count.*$", 491 "properties":{ 492 "pointee_write": "3..=always", 493 "pointee_read": "3..=never", 494 "taken": "" 495 } 496 }, 497 { 498 "type": "function", 499 "value": "^.*efi_boot_mem_unused.*$", 500 "properties":{ 501 "pointee_write": "1..=always", 502 "pointee_read": "1..=never", 503 "taken": "" 504 } 505 }, 506 { 507 "type": "function", 508 "value": "^collect_time_info.*$", 509 "properties":{ 510 "pointee_write": "2=always", 511 "pointee_read": "2=never", 512 "taken": "" 513 } 514 }, 515 { 516 "type": "function", 517 "value": "^setup_xstate_comp.*$", 518 "properties":{ 519 "pointee_write": "1=always", 520 "pointee_read": "1=never", 521 "taken": "" 522 } 523 }, 524 { 525 "type": "function", 526 "value": "^map_domain_gfn.*$", 527 "properties":{ 528 "pointee_read": "5=never", 529 "taken": "" 530 } 531 }, 532 { 533 "type": "function", 534 "value": "^fdt_getprop.*$", 535 "properties":{ 536 "pointee_read": "4=never", 537 "taken": "" 538 } 539 }, 540 { 541 "type": "function", 542 "value": "^fdt_get_name.*$", 543 "properties":{ 544 "pointee_read": "3=never", 545 "taken": "" 546 } 547 }, 548 { 549 "type": "function", 550 "value": "^fdt_get_property.*$", 551 "properties":{ 552 "pointee_read": "4=never", 553 "taken": "" 554 } 555 }, 556 { 557 "type": "function", 558 "value": "^pci_get_host_bridge_segment.*$", 559 "properties":{ 560 "pointee_read": "2=never", 561 "taken": "" 562 } 563 }, 564 { 565 "type": "function", 566 "value": "^dt_get_property.*$", 567 "properties":{ 568 "pointee_read": "3=never", 569 "taken": "" 570 } 571 }, 572 { 573 "type": "function", 574 "value": "^dt_property_read_u32.*$", 575 "properties":{ 576 "pointee_read": "3=never", 577 "taken": "" 578 } 579 }, 580 { 581 "type": "function", 582 "value": "^dt_device_get_paddr.*$", 583 "properties":{ 584 "pointee_read": "3..4=never", 585 "taken": "" 586 } 587 }, 588 { 589 "type": "function", 590 "value": "^get_evtchn_dt_property.*$", 591 "properties":{ 592 "pointee_write": "2..3=maybe", 593 "pointee_read": "2..3=never", 594 "taken": "" 595 } 596 }, 597 { 598 "type": "function", 599 "value": "^setup_chosen_node.*$", 600 "properties":{ 601 "pointee_write": "2..3=maybe", 602 "pointee_read": "2..3=never", 603 "taken": "" 604 } 605 }, 606 { 607 "type": "function", 608 "value": "^queue_remove_raw.*$", 609 "properties":{ 610 "pointee_read": "2=never", 611 "taken": "" 612 } 613 }, 614 { 615 "type": "macro", 616 "value": "^memset$", 617 "properties":{ 618 "pointee_write": "1=always", 619 "pointee_read": "1=never", 620 "taken": "" 621 } 622 }, 623 { 624 "type": "macro", 625 "value": "^va_start$", 626 "properties":{ 627 "pointee_write": "1=always", 628 "pointee_read": "1=never", 629 "taken": "" 630 } 631 }, 632 { 633 "type": "macro", 634 "value": "^memcmp$", 635 "properties":{ 636 "pointee_write": "1..2=never", 637 "taken": "" 638 } 639 }, 640 { 641 "type": "macro", 642 "value": "^memcpy$", 643 "properties":{ 644 "pointee_write": "1=always&&2..=never", 645 "pointee_read": "1=never&&2..=always", 646 "taken": "" 647 } 648 }, 649 { 650 "type": "function", 651 "value": "^get_cpu_info.*$", 652 "properties":{ 653 "attribute": "pure" 654 } 655 }, 656 { 657 "type": "function", 658 "value": "^pdx_to_pfn.*$", 659 "properties":{ 660 "attribute": "pure" 661 } 662 }, 663 { 664 "type": "function", 665 "value": "^is_pci_passthrough_enabled.*$", 666 "properties":{ 667 "attribute": "const" 668 } 669 }, 670 { 671 "type": "function", 672 "value": "^get_cycles.*$", 673 "properties":{ 674 "attribute": "noeffect" 675 } 676 }, 677 { 678 "type": "function", 679 "value": "^msi_gflags.*$", 680 "properties":{ 681 "attribute": "const" 682 } 683 }, 684 { 685 "type": "function", 686 "value": "^hvm_save_size.*$", 687 "properties":{ 688 "attribute": "pure" 689 } 690 }, 691 { 692 "type": "function", 693 "value": "^cpu_has.*$", 694 "properties":{ 695 "attribute": "pure" 696 } 697 }, 698 { 699 "type": "function", 700 "value": "^boot_cpu_has.*$", 701 "properties":{ 702 "attribute": "pure" 703 } 704 }, 705 { 706 "type": "function", 707 "value": "^get_cpu_info.*$", 708 "properties":{ 709 "attribute": "pure" 710 } 711 }, 712 { 713 "type": "function", 714 "value": "^put_pte_flags.*$", 715 "properties":{ 716 "attribute": "const" 717 } 718 }, 719 { 720 "type": "function", 721 "value": "^is_pv_cpu.*$", 722 "properties":{ 723 "attribute": "pure" 724 } 725 }, 726 { 727 "description": "Property inferred as a consequence of the semantics of device_tree_get_reg", 728 "type": "function", 729 "value": "^acquire_static_memory_bank.*$", 730 "properties":{ 731 "pointee_write": "4..=always", 732 "pointee_read": "4..=never", 733 "taken": "" 734 } 735 }, 736 { 737 "description": "Property inferred as a consequence of the semantics of dt_set_cell", 738 "type": "function", 739 "value": "^set_interrupt.*$", 740 "properties":{ 741 "pointee_write": "1=always", 742 "pointee_read": "1=never", 743 "taken": "" 744 } 745 }, 746 { 747 "description":"Property inferred as a consequence of the semantics of __p2m_get_mem_access", 748 "type": "function", 749 "value": "^p2m_get_mem_access.*$", 750 "properties":{ 751 "pointee_write": "3=always", 752 "pointee_read": "3=never", 753 "taken": "" 754 } 755 }, 756 { 757 "description": "This function has alternative definitions with props {write=always,read=never} and {write=never,read=never}", 758 "type": "function", 759 "value": "^alloc_cpumask_var.*$", 760 "properties":{ 761 "pointee_write": "1=maybe", 762 "pointee_read": "1=never", 763 "taken": "" 764 } 765 }, 766 { 767 "description": "Property inferred as a consequence of the semantics of alloc_cpumask_var", 768 "type": "function", 769 "value": "^xenctl_bitmap_to_cpumask.*$", 770 "properties":{ 771 "pointee_write": "1=always", 772 "pointee_read": "1=never", 773 "taken": "" 774 } 775 }, 776 { 777 "description": "The call to bitmap_and causes the pointee of dstp to be always written", 778 "type": "function", 779 "value": "^cpumask_(and|andnot|clear|copy|complement).*$", 780 "properties":{ 781 "pointee_write": "1=always", 782 "pointee_read": "1=never", 783 "taken": "" 784 } 785 }, 786 { 787 "description": "The call to bitmap_and causes the pointee of dstp to be always written", 788 "type": "function", 789 "value": "^bitmap_(andnot|complement|fill).*$", 790 "properties":{ 791 "pointee_write": "1=always", 792 "pointee_read": "1=never", 793 "taken": "" 794 } 795 }, 796 { 797 "description": "The .*copy_(to|from).* helpers all have a memcpy-like expectation that the destination is a copy of the source. Furthermore, their uses do initialize the involved variables as needed by futher uses in the caller.", 798 "type": "macro", 799 "value": "^(__)?(raw_)?copy_from_(paddr|guest|compat)(_offset)?$", 800 "properties":{ 801 "pointee_write": "1=always", 802 "pointee_read": "1=never", 803 "taken": "" 804 } 805 }, 806 { 807 "description":"The .*copy_(to|from).* helpers all have a memcpy-like expectation that the destination is a copy of the source. Furthermore, their uses do initialize the involved variables as needed by futher uses in the caller.", 808 "type": "macro", 809 "value": "^(__)?copy_to_(guest|compat)(_offset)?$", 810 "properties":{ 811 "pointee_write": "2=always", 812 "pointee_read": "2=never", 813 "taken": "" 814 } 815 }, 816 { 817 "description": "Functions generated by build_atomic_read cannot be considered pure since the input pointer is volatile, but they do not produce any persistent side effect.", 818 "type": "function", 819 "value": "^read_u(8|16|32|64|int)_atomic.*$", 820 "properties":{ 821 "attribute": "noeffect" 822 } 823 }, 824 { 825 "description": "Functions generated by TYPE_SAFE are const.", 826 "type": "function", 827 "value": "^(mfn|gfn|pfn)_x\\(.*$", 828 "properties":{ 829 "attribute": "const" 830 } 831 }, 832 { 833 "description": "Functions generated by TYPE_SAFE are const.", 834 "type": "function", 835 "value": "^_(mfn|gfn|pfn)\\(.*$", 836 "properties":{ 837 "attribute": "const" 838 } 839 } 840 ] 841} 842