1
2-call_properties+={"name(z_phys_map)", {"pointee_read(1=never)","pointee_write(1=always)","taken()"}}
3-call_properties+={"name(pcie_get_mbar)", {"pointee_read(3=never)","pointee_write(3=maybe)","taken()"}}
4-call_properties+={"name(k_mem_region_align)", {
5    "pointee_read(1..2=never)",
6    "pointee_write(1..2=always)","taken()"
7    }}
8-call_properties+={"name(pentry_get)", {
9        "pointee_read(1..2=never&&3..4=always)",
10        "pointee_write(1..2=maybe&&3..4=never)"
11        }}
12-call_properties+={"name(z_phys_unmap)", {"pointee_read(1=never)","pointee_write(1=never)"}}
13-call_properties+={"name(check_sum)", {"pointee_read(1=always)","pointee_write(1=never)"}}
14-call_properties+={"name(z_impl_device_get_binding)", {"pointee_read(1=maybe)","pointee_write(1=maybe)","taken()"}}
15-call_properties+={"name(z_setup_new_thread)", {"pointee_read(10=maybe)","pointee_write(10=never)","taken()"}}
16-call_properties+={"name(mbox_message_put)", {"pointee_read(3=always)","pointee_write(3=always)"}}
17-doc_begin="The functions can be implemented using the GCC built-in functions.
18	See Section \"6.62.13 6.56 Built-in Functions to Perform Arithmetic with Overflow Checking\" of "GCC_MANUAL"."
19-call_properties+={"name(size_mul_overflow)", {"pointee_read(3=never)","pointee_write(3=always)","taken()"}}
20-call_properties+={"name(size_add_overflow)", {"pointee_read(3=never)","pointee_write(3=always)","taken()"}}
21-call_properties+={"name(__builtin_mul_overflow)", {"pointee_read(3=never)","pointee_write(3=always)","taken()"}}
22-call_properties+={"name(__builtin_add_overflow)", {"pointee_read(3=never)","pointee_write(3=always)","taken()"}}
23-doc_end
24
25-call_properties+={"name(__builtin_va_end)", {"taken()"}} # Not documented in gcc.pdf
26-call_properties+={"name(arch_page_phys_get)", {"pointee_read(2=never)","pointee_write(2=maybe)","taken()"}}
27-call_properties+={"name(cbvprintf)", {"taken()"}}
28-call_properties+={"name(cbvprintf)", {"taken()"}}
29-call_properties+={"name(char2hex)", {"pointee_read(2=never)","pointee_write(2=maybe)"}}
30-call_properties+={"name(find_and_stack)", {"pointee_read(3=never)","pointee_write(3=always)"}}
31-call_properties+={"name(fix_missing_black)", {"pointee_read(1=always)","pointee_write(1=maybe)"}}
32-call_properties+={"name(__get_cpuid)", {"pointee_read(2..5=never)","pointee_write(2..5=always)"}}
33-call_properties+={"name(k_mutex_init)", {"pointee_read(1=never)","pointee_write(1=always)"}}
34-call_properties+={"name(k_sem_init)", {"pointee_read(1=never)","pointee_write(1=maybe)"}}
35-call_properties+={"name(k_work_init)", {"pointee_read(1=never)","pointee_write(1=always)"}}
36-call_properties+={"name(k_work_init_delayable)", {"pointee_read(1=never)","pointee_write(1=always)"}}
37-call_properties+={"name(k_work_queue_start)", {"taken()"}}
38-call_properties+={"name(log_from_user)", {"pointee_write(1..=never)", "taken()"}}
39-call_properties+={"name(log_n)", {"taken()"}}
40-call_properties+={"name(log_string_sync)", {"pointee_write(1..=never)", "taken()"}}
41-call_properties+={"name(match_region)", {"pointee_read(5..6=never)","pointee_write(5=always&&6=maybe)"}}
42-call_properties+={"name(mbox_async_alloc)", {"pointee_read(1=never)","pointee_write(1=maybe)"}}
43-call_properties+={"name(pipe_xfer_prepare)", {"pointee_read(2=never)","pointee_write(2=always)"}}
44-call_properties+={"name(printk)", {"pointee_write(1..=never)", "taken()"}}
45-call_properties+={"name(snprintk)", {"pointee_read(1=never)","pointee_write(1=always)", "taken()"}} # to check
46-call_properties+={"name(snprintk)", {"taken()"}}
47-call_properties+={"name(sys_bitarray_alloc)", {"pointee_read(3=never)","pointee_write(3=maybe)","taken()"}}
48-call_properties+={"name(sys_slist_init)", {"pointee_read(1=never)","pointee_write(1=always)"}}
49-call_properties+={"name(vprintk)", {"taken()"}}
50-call_properties+={"name(z_dummy_thread_init)", {"pointee_read(1=never)","pointee_write(1=always)"}} # the function does not initialize all the fields
51-call_properties+={"name(z_impl_k_stack_pop)", {"taken()"}}
52-call_properties+={"name(z_impl_z_log_msg2_runtime_vcreate)", {"taken()"}}
53-call_properties+={"name(z_log_minimal_printk)", {"pointee_write(1..=never)", "taken()"}}
54-call_properties+={"name(z_log_msg2_runtime_create)", {"pointee_write(1..=never)", "taken()"}}
55-call_properties+={"name(z_log_printk)", {"taken()"}}
56-call_properties+={"name(z_log_printf_arg_checker)", {"pointee_write(1..=never)", "taken()"}}
57-call_properties+={"name(z_log_strdup)", {"taken()"}}
58-call_properties+={"name(z_rb_foreach_next)", {"taken()"}}
59-call_properties+={"name(z_user_string_copy)", {"pointee_read(1=never)","pointee_write(1=maybe)","taken()"}}
60
61-doc_begin="These macros are designed to evaluate to either 0 or 1."
62-call_properties+={"macro(name(UTIL_NOT))",{"data_kind(0=int_bool)"}}
63-call_properties+={"macro(name(IS_ENABLED))",{"data_kind(0=int_bool)"}}
64-call_properties+={"decl(name(isspace))",{"data_kind(0=int_bool)"}}
65-call_properties+={"macro(name(isdigit))",{"data_kind(0=int_bool)"}}
66-call_properties+={"decl(name(isdigit))",{"data_kind(0=int_bool)"}}
67-call_properties+={"macro(name(isalpha))",{"data_kind(0=int_bool)"}}
68-call_properties+={"decl(name(isalpha))",{"data_kind(0=int_bool)"}}
69-call_properties+={"macro(name(isupper))",{"data_kind(0=int_bool)"}}
70-call_properties+={"decl(name(isupper))",{"data_kind(0=int_bool)"}}
71-doc_end
72
73-doc="__builtin_alloca cannot interfere with other effects."
74-call_properties+={"decl(name(__builtin_alloca))",{"noeffect"}}
75
76-doc="log_strdup cannot interfere with other effects."
77-call_properties+={"decl(name(log_strdup))",{"noeffect"}}
78
79
80# Not documented functions
81# device_map
82