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