Commit Graph

125 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
10dd55a5cd ANDROID: 5.4.29 ABI update
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct sk_buff at skbuff.h:685:1' changed:
  type size hasn't changed
  2 data member deletions:
    '__u8 sk_buff::tc_from_ingress', at offset 1 (in bits) at skbuff.h:820:1
    '__u8 sk_buff::tc_redirected', at offset 2 (in bits) at skbuff.h:819:1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I36c0bda757e61709c953a4c3617013d284d0bcaa
2020-04-02 15:04:43 +02:00
Todd Kjos
5b70298fc7 ANDROID: GKI: Fix ABI for scsi/ufs patches
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct ufs_hba_variant_ops at ufshcd.h:315:1' changed:
  type size changed from 1280 to 1344 (in bits)
  1 data member insertion:
    'void ()* ufs_hba_variant_ops::config_scaling_param', at offset 1280 (in bits) at ufshcd.h:359:1
  13 impacted interfaces:
    function int ufshcd_dme_get_attr(ufs_hba*, u32, u32*, u8)
    function int ufshcd_dme_set_attr(ufs_hba*, u32, u8, u32, u8)
    function int ufshcd_dump_regs(ufs_hba*, size_t, size_t, const char*)
    function u32 ufshcd_get_local_unipro_ver(ufs_hba*)
    function int ufshcd_hold(ufs_hba*, bool)
    function int ufshcd_pltfrm_init(platform_device*, const ufs_hba_variant_ops*)
    function int ufshcd_query_attr(ufs_hba*, query_opcode, attr_idn, u8, u8, u32*)
    function int ufshcd_query_descriptor_retry(ufs_hba*, query_opcode, desc_idn, u8, u8, u8*, int*)
    function int ufshcd_query_flag(ufs_hba*, query_opcode, flag_idn, bool*)
    function void ufshcd_release(ufs_hba*)
    function void ufshcd_remove(ufs_hba*)
    function int ufshcd_uic_hibern8_enter(ufs_hba*)
    function int ufshcd_uic_hibern8_exit(ufs_hba*)

Bug: 152781094
Bug: 152930830
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: I3b03368505d5f0839667aee867e041a806810dfe
2020-04-02 01:30:06 +00:00
Liangcai Fan
8e8c63d051 ANDROID: ABI/Whitelist: update whitelist of unisoc
Update whitelist for the symbols used by the unisoc device and
updates the ABI representation accordingly.

Leaf changes summary: 10 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 10 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

10 Added functions:

  [A] 'function pwm_device* devm_pwm_get(device*, const char*)'
  [A] 'function void drm_atomic_helper_commit_tail_rpm(drm_atomic_state*)'
  [A] 'function bool gpiochip_line_is_irq(gpio_chip*, unsigned int)'
  [A] 'function int gpiod_get_direction(gpio_desc*)'
  [A] 'function gpio_chip* gpiod_to_chip(const gpio_desc*)'
  [A] 'function void pwm_free(pwm_device*)'
  [A] 'function pwm_device* pwm_request(int, const char*)'
  [A] 'function void usb_phy_get_charger_current(usb_phy*, unsigned int*, unsigned int*)'
  [A] 'function void usb_phy_set_charger_current(usb_phy*, unsigned int)'
  [A] 'function void usb_phy_set_charger_state(usb_phy*, usb_charger_state)'

Bug: 147075469
Change-Id: I04b243e226f62a621746cd09b8f7cd37b2ab85f5
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
2020-04-01 17:36:30 +08:00
Ram Muthiah
2379085a07 ANDROID: GKI: Added goldfish whitelist to aarch64 abi
Bug: 151893768
Test: Treehugger
Signed-off-by: Ram Muthiah <rammuthiah@google.com>
Change-Id: Ifb50d7a02c8beb3ed6d7fddd2287154969cb2282
2020-03-31 12:45:07 -07:00
Ram Muthiah
0e36cb2865 ANDROID: GKI: update cf whitelist + gki whitelist
Bug: 147894960
Test: Treehugger
Signed-off-by: Ram Muthiah <rammuthiah@google.com>
Change-Id: I1d06a4d72bcef9a335d9120f936d475aa6a377c0
2020-03-31 12:28:54 -07:00
Maciej Żenczykowski
6db48906aa UPSTREAM: ipv6: ndisc: add support for 'PREF64' dns64 prefix identifier
This is trivial since we already have support for the entirely
identical (from the kernel's point of view) RDNSS, DNSSL, etc. that
also contain opaque data that needs to be passed down to userspace
for further processing.

As specified in draft-ietf-6man-ra-pref64-09 (while it is still a draft,
it is purely waiting on the RFC Editor for cleanups and publishing):
  PREF64 option contains lifetime and a (up to) 96-bit IPv6 prefix.

The 8-bit identifier of the option type as assigned by the IANA is 38.

Since we lack DNS64/NAT64/CLAT support in kernel at the moment,
thus this option should also be passed on to userland.

See:
  https://tools.ietf.org/html/draft-ietf-6man-ra-pref64-09
  https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml#icmpv6-parameters-5

Cc: Erik Kline <ek@google.com>
Cc: Jen Linkova <furry@google.com>
Cc: Lorenzo Colitti <lorenzo@google.com>
Cc: Michael Haro <mharo@google.com>
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Acked-By: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit c24a77edc9a7ac9b5fea75407f197fe1469262f4)
Bug: 150648313
Change-Id: I02bff2103194a8171f907e82f811d7ab66962138
2020-03-31 03:17:50 -07:00
Raghavendra Rao Ananta
9c1fc2d22c ANDROID: ABI: Add initial ABI whitelist for QCOM
Add initial ABI whitelist file for Qualcomm's family of SoCs.
Update the ABI snapshot (that added 569 functions) as well
as build.config.gki.aarch64 accordingly.

569 Added functions:

  [A] 'function int ___pskb_trim(sk_buff*, unsigned int)'
  [A] 'function void __bitmap_clear(unsigned long int*, unsigned int, int)'
  [A] 'function void __bitmap_set(unsigned long int*, unsigned int, int)'
  [A] 'function int __bitmap_subset(const unsigned long int*, const unsigned long int*, unsigned int)'
  [A] 'function clk_hw* __clk_get_hw(clk*)'
  [A] 'function void __drm_atomic_helper_connector_destroy_state(drm_connector_state*)'
  [A] 'function void __drm_atomic_helper_connector_duplicate_state(drm_connector*, drm_connector_state*)'
  [A] 'function void __drm_atomic_helper_connector_reset(drm_connector*, drm_connector_state*)'
  [A] 'function void __hvc_resize(hvc_struct*, winsize)'
  [A] 'function void __iowrite32_copy(void*, void*, size_t)'
  [A] 'function int __ipv6_addr_type(const in6_addr*)'
  [A] 'function int __media_device_register(media_device*, module*)'
  [A] 'function void __scsi_print_sense(const scsi_device*, const char*, const unsigned char*, int)'
  [A] 'function bool __sg_page_iter_next(sg_page_iter*)'
  [A] 'function void __sg_page_iter_start(sg_page_iter*, scatterlist*, unsigned int, unsigned long int)'
  [A] 'function void __skb_get_hash(sk_buff*)'
  [A] 'function sk_buff* __skb_gso_segment(sk_buff*, netdev_features_t, bool)'
  [A] 'function void __sock_recv_ts_and_drops(msghdr*, sock*, sk_buff*)'
  [A] 'function void __sock_tx_timestamp(__u16, __u8*)'
  [A] 'function ssize_t __splice_from_pipe(pipe_inode_info*, splice_desc*, splice_actor*)'
  [A] 'function unsigned int __sw_hweight8(unsigned int)'
  [A] 'function pid_t __task_pid_nr_ns(task_struct*, pid_type, pid_namespace*)'
  [A] 'function void __tasklet_hi_schedule(tasklet_struct*)'
  [A] 'function int __uio_register_device(module*, device*, uio_info*)'
  [A] 'function int __v4l2_ctrl_modify_range(v4l2_ctrl*, s64, s64, u64, s64)'
  [A] 'function int __v4l2_ctrl_s_ctrl(v4l2_ctrl*, s32)'
  [A] 'function int __video_register_device(video_device*, vfl_devnode_type, int, int, module*)'
  [A] 'function void __wake_up_locked(wait_queue_head*, unsigned int, int)'
  [A] 'function void _raw_read_lock_irq(rwlock_t*)'
  [A] 'function unsigned long int _raw_read_lock_irqsave(rwlock_t*)'
  [A] 'function void _raw_read_unlock_irq(rwlock_t*)'
  [A] 'function void _raw_read_unlock_irqrestore(rwlock_t*, unsigned long int)'
  [A] 'function int _raw_spin_trylock_bh(raw_spinlock_t*)'
  [A] 'function void _raw_write_lock_irq(__anonymous_struct__9*)'
  [A] 'function unsigned long int _raw_write_lock_irqsave(rwlock_t*)'
  [A] 'function void _raw_write_unlock_irq(__anonymous_struct__9*)'
  [A] 'function void _raw_write_unlock_irqrestore(rwlock_t*, unsigned long int)'
  [A] 'function void add_device_randomness(void*, unsigned int)'
  [A] 'function void add_timer_on(timer_list*, int)'
  [A] 'function void adjust_managed_page_count(page*, long int)'
  [A] 'function void alarm_start_relative(alarm*, ktime_t)'
  [A] 'function io_pgtable_ops* alloc_io_pgtable_ops(io_pgtable_fmt, io_pgtable_cfg*, void*)'
  [A] 'function sk_buff* alloc_skb_with_frags(unsigned long int, unsigned long int, int, int*, unsigned int)'
  [A] 'function backlight_device* backlight_device_get_by_type(backlight_type)'
  [A] 'function backlight_device* backlight_device_register(const char*, device*, void*, const backlight_ops*, const backlight_properties*)'
  [A] 'function int backlight_device_set_brightness(backlight_device*, unsigned long int)'
  [A] 'function void backlight_device_unregister(backlight_device*)'
  [A] 'function unsigned long int bitmap_find_next_zero_area_off(unsigned long int*, unsigned long int, unsigned long int, unsigned int, unsigned long int, unsigned long int)'
  [A] 'function void bitmap_free(const unsigned long int*)'
  [A] 'function int bitmap_parselist(const char*, unsigned long int*, int)'
  [A] 'function int bitmap_print_to_pagebuf(bool, char*, const unsigned long int*, int)'
  [A] 'function unsigned long int* bitmap_zalloc(unsigned int, unsigned int)'
  [A] 'function int blk_mq_virtio_map_queues(blk_mq_queue_map*, virtio_device*, int)'
  [A] 'function int blk_rq_map_user_iov(request_queue*, request*, rq_map_data*, const iov_iter*, gfp_t)'
  [A] 'function int blk_verify_command(unsigned char*, fmode_t)'
  [A] 'function void bpf_trace_run11(bpf_prog*, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64)'
  [A] 'function void bpf_trace_run12(bpf_prog*, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64)'
  [A] 'function int bus_for_each_dev(bus_type*, device*, void*, void ()*)'
  [A] 'function int bus_set_iommu(bus_type*, const iommu_ops*)'
  [A] 'function u32 cfg80211_calculate_bitrate(rate_info*)'
  [A] 'function void cfg80211_ch_switch_notify(net_device*, cfg80211_chan_def*)'
  [A] 'function void cfg80211_chandef_create(cfg80211_chan_def*, ieee80211_channel*, nl80211_channel_type)'
  [A] 'function void cfg80211_ft_event(net_device*, cfg80211_ft_event_params*)'
  [A] 'function void cfg80211_gtk_rekey_notify(net_device*, const u8*, const u8*, gfp_t)'
  [A] 'function cfg80211_bss* cfg80211_inform_bss_frame_data(wiphy*, cfg80211_inform_bss*, ieee80211_mgmt*, size_t, gfp_t)'
  [A] 'function void cfg80211_pmksa_candidate_notify(net_device*, int, const u8*, bool, gfp_t)'
  [A] 'function void class_interface_unregister(class_interface*)'
  [A] 'function clk* clk_get_sys(const char*, const char*)'
  [A] 'function clk* clk_register(device*, clk_hw*)'
  [A] 'function cmd_db_hw_type cmd_db_read_slave_id(const char*)'
  [A] 'function int cmd_db_ready()'
  [A] 'function void* compat_alloc_user_space(unsigned long int)'
  [A] 'function void complete_and_exit(completion*, long int)'
  [A] 'function void config_item_put(config_item*)'
  [A] 'function int cpu_pm_unregister_notifier(notifier_block*)'
  [A] 'function unsigned int cpufreq_quick_get_max(unsigned int)'
  [A] 'function int cpufreq_register_notifier(notifier_block*, unsigned int)'
  [A] 'function int cpufreq_unregister_notifier(notifier_block*, unsigned int)'
  [A] 'function void cpufreq_update_policy(unsigned int)'
  [A] 'function u8 crc8(const u8*, u8*, size_t, u8)'
  [A] 'function void crc8_populate_msb(u8*, u8)'
  [A] 'function int crypto_aead_encrypt(aead_request*)'
  [A] 'function int crypto_aead_setauthsize(crypto_aead*, unsigned int)'
  [A] 'function int crypto_aead_setkey(crypto_aead*, const unsigned char*, unsigned int)'
  [A] 'function crypto_aead* crypto_alloc_aead(const char*, unsigned int, unsigned int)'
  [A] 'function crypto_tfm* crypto_alloc_base(const char*, unsigned int, unsigned int)'
  [A] 'function crypto_shash* crypto_alloc_shash(const char*, unsigned int, unsigned int)'
  [A] 'function crypto_skcipher* crypto_alloc_skcipher(const char*, unsigned int, unsigned int)'
  [A] 'function crypto_async_request* crypto_dequeue_request(crypto_queue*)'
  [A] 'function void crypto_destroy_tfm(void*, crypto_tfm*)'
  [A] 'function int crypto_enqueue_request(crypto_queue*, crypto_async_request*)'
  [A] 'function void crypto_init_queue(crypto_queue*, unsigned int)'
  [A] 'function int crypto_shash_final(shash_desc*, unsigned char*)'
  [A] 'function int crypto_shash_setkey(crypto_shash*, const unsigned char*, unsigned int)'
  [A] 'function int crypto_shash_update(shash_desc*, const unsigned char*, unsigned int)'
  [A] 'function int crypto_skcipher_decrypt(skcipher_request*)'
  [A] 'function int crypto_skcipher_encrypt(skcipher_request*)'
  [A] 'function int dequeue_signal(task_struct*, sigset_t*, kernel_siginfo_t*)'
  [A] 'function void dev_add_pack(packet_type*)'
  [A] 'function int dev_alloc_name(net_device*, const char*)'
  [A] 'function int dev_pm_domain_attach(device*, bool)'
  [A] 'function int dev_pm_opp_register_notifier(device*, notifier_block*)'
  [A] 'function int dev_pm_opp_unregister_notifier(device*, notifier_block*)'
  [A] 'function void dev_remove_pack(packet_type*)'
  [A] 'function int dev_set_mac_address(net_device*, sockaddr*, netlink_ext_ack*)'
  [A] 'function device* device_create_with_groups(class*, device*, unsigned int, void*, const attribute_group**, const char*, ...)'
  [A] 'function unsigned int device_get_child_node_count(device*)'
  [A] 'function device_link* device_link_add(device*, device*, unsigned int)'
  [A] 'function void device_link_del(device_link*)'
  [A] 'function ssize_t device_show_int(device*, device_attribute*, char*)'
  [A] 'function ssize_t device_store_int(device*, device_attribute*, const char*, size_t)'
  [A] 'function int devm_clk_bulk_get_optional(device*, int, clk_bulk_data*)'
  [A] 'function void devm_clk_put(device*, clk*)'
  [A] 'function gpio_desc* devm_fwnode_get_index_gpiod_from_child(device*, const char*, int, fwnode_handle*, gpiod_flags, const char*)'
  [A] 'function nvmem_device* devm_nvmem_device_get(device*, const char*)'
  [A] 'function int devm_of_pci_get_host_bridge_resources(device*, unsigned char, unsigned char, list_head*, resource_size_t*)'
  [A] 'function pwm_device* devm_of_pwm_get(device*, device_node*, const char*)'
  [A] 'function pci_host_bridge* devm_pci_alloc_host_bridge(device*, size_t)'
  [A] 'function void devm_pinctrl_put(pinctrl*)'
  [A] 'function power_supply* devm_power_supply_get_by_phandle(device*, const char*)'
  [A] 'function void devm_pwm_put(device*, pwm_device*)'
  [A] 'function void devm_regmap_del_irq_chip(device*, int, regmap_irq_chip_data*)'
  [A] 'function int devm_regulator_register_notifier(regulator*, notifier_block*)'
  [A] 'function int devm_request_pci_bus_resources(device*, list_head*)'
  [A] 'function int dma_buf_begin_cpu_access_partial(dma_buf*, dma_data_direction, unsigned int, unsigned int)'
  [A] 'function int dma_buf_end_cpu_access_partial(dma_buf*, dma_data_direction, unsigned int, unsigned int)'
  [A] 'function int dma_buf_get_flags(dma_buf*, unsigned long int*)'
  [A] 'function dma_addr_t dma_direct_map_resource(device*, phys_addr_t, size_t, dma_data_direction, unsigned long int)'
  [A] 'function dma_fence_array* dma_fence_array_create(int, dma_fence**, u64, unsigned int, bool)'
  [A] 'function void do_exit(long int)'
  [A] 'function int do_wait_intr(wait_queue_head_t*, wait_queue_entry_t*)'
  [A] 'function void drain_workqueue(workqueue_struct*)'
  [A] 'function device* driver_find_device(device_driver*, device*, void*, void ()*)'
  [A] 'function int drm_atomic_commit(drm_atomic_state*)'
  [A] 'function drm_connector_state* drm_atomic_get_connector_state(drm_atomic_state*, drm_connector*)'
  [A] 'function drm_plane_state* drm_atomic_get_plane_state(drm_atomic_state*, drm_plane*)'
  [A] 'function int drm_atomic_helper_commit_duplicated_state(drm_atomic_state*, drm_modeset_acquire_ctx*)'
  [A] 'function drm_atomic_state* drm_atomic_helper_duplicate_state(drm_device*, drm_modeset_acquire_ctx*)'
  [A] 'function void drm_atomic_helper_update_legacy_modeset_state(drm_device*, drm_atomic_state*)'
  [A] 'function int drm_atomic_helper_wait_for_fences(drm_device*, drm_atomic_state*, bool)'
  [A] 'function int drm_atomic_set_crtc_for_connector(drm_connector_state*, drm_crtc*)'
  [A] 'function void drm_atomic_set_fence_for_plane(drm_plane_state*, dma_fence*)'
  [A] 'function int drm_atomic_set_mode_for_crtc(drm_crtc_state*, const drm_display_mode*)'
  [A] 'function drm_atomic_state* drm_atomic_state_alloc(drm_device*)'
  [A] 'function void drm_atomic_state_clear(drm_atomic_state*)'
  [A] 'function void drm_atomic_state_default_clear(drm_atomic_state*)'
  [A] 'function void drm_atomic_state_default_release(drm_atomic_state*)'
  [A] 'function int drm_atomic_state_init(drm_device*, drm_atomic_state*)'
  [A] 'function void drm_bridge_disable(drm_bridge*)'
  [A] 'function void drm_bridge_enable(drm_bridge*)'
  [A] 'function void drm_bridge_mode_set(drm_bridge*, const drm_display_mode*, const drm_display_mode*)'
  [A] 'function void drm_bridge_post_disable(drm_bridge*)'
  [A] 'function void drm_bridge_pre_enable(drm_bridge*)'
  [A] 'function int drm_client_init(drm_device*, drm_client_dev*, const char*, const drm_client_funcs*)'
  [A] 'function int drm_client_modeset_commit_force(drm_client_dev*)'
  [A] 'function void drm_client_register(drm_client_dev*)'
  [A] 'function void drm_crtc_wait_one_vblank(drm_crtc*)'
  [A] 'function bool drm_detect_monitor_audio(edid*)'
  [A] 'function int drm_event_reserve_init_locked(drm_device*, drm_file*, drm_pending_event*, drm_event*)'
  [A] 'function drm_framebuffer* drm_framebuffer_lookup(drm_device*, drm_file*, unsigned int)'
  [A] 'function void drm_framebuffer_remove(drm_framebuffer*)'
  [A] 'function void drm_framebuffer_unregister_private(drm_framebuffer*)'
  [A] 'function const char* drm_get_connector_status_name(drm_connector_status)'
  [A] 'function void drm_kms_helper_poll_disable(drm_device*)'
  [A] 'function void drm_kms_helper_poll_enable(drm_device*)'
  [A] 'function unsigned char drm_match_cea_mode(const drm_display_mode*)'
  [A] 'function int drm_mode_convert_umode(drm_device*, drm_display_mode*, const drm_mode_modeinfo*)'
  [A] 'function int drm_mode_create_dp_colorspace_property(drm_connector*)'
  [A] 'function bool drm_mode_equal(const drm_display_mode*, const drm_display_mode*)'
  [A] 'function void drm_mode_object_get(drm_mode_object*)'
  [A] 'function void drm_mode_set_crtcinfo(drm_display_mode*, int)'
  [A] 'function void drm_mode_set_name(drm_display_mode*)'
  [A] 'function void drm_modeset_acquire_fini(drm_modeset_acquire_ctx*)'
  [A] 'function void drm_modeset_acquire_init(drm_modeset_acquire_ctx*, unsigned int)'
  [A] 'function int drm_modeset_backoff(drm_modeset_acquire_ctx*)'
  [A] 'function void drm_modeset_drop_locks(drm_modeset_acquire_ctx*)'
  [A] 'function int drm_modeset_lock_all_ctx(drm_device*, drm_modeset_acquire_ctx*)'
  [A] 'function int drm_object_property_set_value(drm_mode_object*, drm_property*, long long unsigned int)'
  [A] 'function int drm_panel_notifier_call_chain(drm_panel*, unsigned long int, void*)'
  [A] 'function drm_property_blob* drm_property_blob_get(drm_property_blob*)'
  [A] 'function void drm_property_blob_put(drm_property_blob*)'
  [A] 'function drm_property* drm_property_create_bitmask(drm_device*, unsigned int, const char*, const drm_prop_enum_list*, int, long long unsigned int)'
  [A] 'function drm_property* drm_property_create_enum(drm_device*, unsigned int, const char*, const drm_prop_enum_list*, int)'
  [A] 'function drm_property_blob* drm_property_lookup_blob(drm_device*, uint32_t)'
  [A] 'function void drm_send_event_locked(drm_device*, drm_pending_event*)'
  [A] 'function int extcon_get_property(extcon_dev*, unsigned int, unsigned int, extcon_property_value*)'
  [A] 'function char* file_path(file*, char*, int)'
  [A] 'function unsigned long int find_last_bit(const unsigned long int*, unsigned long int)'
  [A] 'function snd_usb_substream* find_snd_usb_substream(unsigned int, unsigned int, unsigned int, snd_usb_audio**, void ()*)'
  [A] 'function int firmware_request_nowarn(const firmware**, const char*, device*)'
  [A] 'function void flush_dcache_page(page*)'
  [A] 'function void free_io_pgtable_ops(io_pgtable_ops*)'
  [A] 'function int fsl8250_handle_irq(uart_port*)'
  [A] 'function size_t gen_pool_avail(gen_pool*)'
  [A] 'function size_t gen_pool_size(gen_pool*)'
  [A] 'function iommu_group* generic_device_group(device*)'
  [A] 'function int get_option(char**, int*)'
  [A] 'function unsigned long int get_unmapped_area(file*, unsigned long int, unsigned long int, unsigned long int, unsigned long int)'
  [A] 'function void getboottime64(timespec64*)'
  [A] 'function void gpio_free_array(const gpio*, size_t)'
  [A] 'function int gpiod_cansleep(const gpio_desc*)'
  [A] 'function gpio_desc* gpiod_get_optional(device*, const char*, gpiod_flags)'
  [A] 'function int gpiod_get_raw_value_cansleep(const gpio_desc*)'
  [A] 'function int gpiod_is_active_low(const gpio_desc*)'
  [A] 'function void gpiod_set_raw_value_cansleep(gpio_desc*, int)'
  [A] 'function void gro_cells_destroy(gro_cells*)'
  [A] 'function int gro_cells_init(gro_cells*, net_device*)'
  [A] 'function int gro_cells_receive(gro_cells*, sk_buff*)'
  [A] 'function void handle_simple_irq(irq_desc*)'
  [A] 'function int hex2bin(unsigned char*, const char*, unsigned long int)'
  [A] 'function int hex_dump_to_buffer(void*, unsigned long int, int, int, char*, unsigned long int, bool)'
  [A] 'function hvc_struct* hvc_alloc(uint32_t, int, const hv_ops*, int)'
  [A] 'function int hvc_instantiate(uint32_t, int, const hv_ops*)'
  [A] 'function void hvc_kick()'
  [A] 'function int hvc_poll(hvc_struct*)'
  [A] 'function int hvc_remove(hvc_struct*)'
  [A] 'function icc_path* icc_get(device*, const int, const int)'
  [A] 'function void icc_set_tag(icc_path*, u32)'
  [A] 'function int idr_alloc_cyclic(idr*, void*, int, int, unsigned int)'
  [A] 'function long int import_iovec(int, const iovec*, unsigned int, unsigned int, iovec**, iov_iter*)'
  [A] 'function int in_egroup_p(kgid_t)'
  [A] 'function int init_dummy_netdev(net_device*)'
  [A] 'function void input_close_device(input_handle*)'
  [A] 'function int input_ff_create(input_dev*, unsigned int)'
  [A] 'function void input_ff_destroy(input_dev*)'
  [A] 'function int input_open_device(input_handle*)'
  [A] 'function int input_register_handle(input_handle*)'
  [A] 'function int input_register_handler(input_handler*)'
  [A] 'function void input_unregister_handle(input_handle*)'
  [A] 'function void input_unregister_handler(input_handler*)'
  [A] 'function iommu_resv_region* iommu_alloc_resv_region(long long unsigned int, unsigned long int, int, iommu_resv_type)'
  [A] 'function int iommu_device_register(iommu_device*)'
  [A] 'function void iommu_device_unregister(iommu_device*)'
  [A] 'function void iommu_dma_get_resv_regions(device*, list_head*)'
  [A] 'function int iommu_domain_get_attr(iommu_domain*, iommu_attr, void*)'
  [A] 'function int iommu_domain_set_attr(iommu_domain*, iommu_attr, void*)'
  [A] 'function int iommu_fwspec_add_ids(device*, unsigned int*, int)'
  [A] 'function void iommu_fwspec_free(device*)'
  [A] 'function int iommu_get_dma_cookie(iommu_domain*)'
  [A] 'function iommu_domain* iommu_get_domain_for_dev(device*)'
  [A] 'function iommu_group* iommu_group_get(device*)'
  [A] 'function iommu_group* iommu_group_get_for_dev(device*)'
  [A] 'function void* iommu_group_get_iommudata(iommu_group*)'
  [A] 'function void iommu_group_put(iommu_group*)'
  [A] 'function iommu_group* iommu_group_ref_get(iommu_group*)'
  [A] 'function void iommu_group_remove_device(device*)'
  [A] 'function void iommu_group_set_iommudata(iommu_group*, void*, void ()*)'
  [A] 'function int iommu_map(iommu_domain*, unsigned long int, phys_addr_t, size_t, int)'
  [A] 'function void iommu_put_dma_cookie(iommu_domain*)'
  [A] 'function dma_buf* ion_alloc(size_t, unsigned int, unsigned int)'
  [A] 'function int ion_buffer_zero(ion_buffer*)'
  [A] 'function int ion_free(ion_buffer*)'
  [A] 'function void* ion_heap_map_kernel(ion_heap*, ion_buffer*)'
  [A] 'function int ion_heap_map_user(ion_heap*, ion_buffer*, vm_area_struct*)'
  [A] 'function void ion_heap_unmap_kernel(ion_heap*, ion_buffer*)'
  [A] 'function __sum16 ip_compute_csum(void*, int)'
  [A] 'function int ipv6_skip_exthdr(const sk_buff*, int, unsigned char*, unsigned short int*)'
  [A] 'function unsigned int irq_create_fwspec_mapping(irq_fwspec*)'
  [A] 'function unsigned int irq_create_mapping(irq_domain*, irq_hw_number_t)'
  [A] 'function void irq_dispose_mapping(unsigned int)'
  [A] 'function void irq_domain_free_irqs_parent(irq_domain*, unsigned int, unsigned int)'
  [A] 'function irq_data* irq_domain_get_irq_data(irq_domain*, unsigned int)'
  [A] 'function int irq_set_irqchip_state(unsigned int, irqchip_irq_state, bool)'
  [A] 'function int irq_set_parent(int, int)'
  [A] 'function int iterate_fd(files_struct*, unsigned int, void ()*, void*)'
  [A] 'function int kernel_getsockname(socket*, sockaddr*)'
  [A] 'function int kernel_recvmsg(socket*, msghdr*, kvec*, size_t, size_t, int)'
  [A] 'function void kernel_sigaction(int, __sighandler_t)'
  [A] 'function kernfs_node* kernfs_find_and_get_ns(kernfs_node*, const char*, void*)'
  [A] 'function void kernfs_notify(kernfs_node*)'
  [A] 'function void kernfs_put(kernfs_node*)'
  [A] 'function void kfree_skb_list(sk_buff*)'
  [A] 'function kset* kset_create_and_add(const char*, const kset_uevent_ops*, kobject*)'
  [A] 'function void kset_unregister(kset*)'
  [A] 'function int kstrtoint_from_user(const char*, unsigned long int, unsigned int, int*)'
  [A] 'function int kstrtos8(const char*, unsigned int, s8*)'
  [A] 'function int kstrtos8_from_user(const char*, size_t, unsigned int, s8*)'
  [A] 'function int kstrtou16_from_user(const char*, size_t, unsigned int, u16*)'
  [A] 'function int kstrtou8_from_user(const char*, size_t, unsigned int, u8*)'
  [A] 'function void kthread_bind(task_struct*, unsigned int)'
  [A] 'function bool kthread_cancel_delayed_work_sync(kthread_delayed_work*)'
  [A] 'function bool kthread_cancel_work_sync(kthread_work*)'
  [A] 'function kthread_worker* kthread_create_worker(unsigned int, const char*, ...)'
  [A] 'function void kthread_delayed_work_timer_fn(timer_list*)'
  [A] 'function void kthread_flush_work(kthread_work*)'
  [A] 'function void kthread_flush_worker(kthread_worker*)'
  [A] 'function bool kthread_mod_delayed_work(kthread_worker*, kthread_delayed_work*, unsigned long int)'
  [A] 'function int kthread_park(task_struct*)'
  [A] 'function void kthread_parkme()'
  [A] 'function bool kthread_queue_delayed_work(kthread_worker*, kthread_delayed_work*, unsigned long int)'
  [A] 'function bool kthread_should_park()'
  [A] 'function void kthread_unpark(task_struct*)'
  [A] 'function int led_classdev_register_ext(device*, led_classdev*, led_init_data*)'
  [A] 'function void led_classdev_unregister(led_classdev*)'
  [A] 'function void led_trigger_event(led_trigger*, led_brightness)'
  [A] 'function void led_trigger_register_simple(const char*, led_trigger**)'
  [A] 'function void led_trigger_unregister_simple(led_trigger*)'
  [A] 'function bool mac_pton(const char*, u8*)'
  [A] 'function void mbox_chan_received_data(mbox_chan*, void*)'
  [A] 'function void mbox_chan_txdone(mbox_chan*, int)'
  [A] 'function void mbox_client_txdone(mbox_chan*, int)'
  [A] 'function int mbox_controller_register(mbox_controller*)'
  [A] 'function void mbox_controller_unregister(mbox_controller*)'
  [A] 'function void mbox_free_channel(mbox_chan*)'
  [A] 'function mbox_chan* mbox_request_channel(mbox_client*, int)'
  [A] 'function int mbox_send_message(mbox_chan*, void*)'
  [A] 'function void media_device_cleanup(media_device*)'
  [A] 'function void media_device_init(media_device*)'
  [A] 'function void media_device_unregister(media_device*)'
  [A] 'function int media_entity_pads_init(media_entity*, u16, media_pad*)'
  [A] 'function void* memchr(void*, int, unsigned long int)'
  [A] 'function int mipi_dsi_dcs_set_display_brightness(mipi_dsi_device*, u16)'
  [A] 'function int mipi_dsi_dcs_set_tear_off(mipi_dsi_device*)'
  [A] 'function void mod_node_page_state(pglist_data*, node_stat_item, long int)'
  [A] 'function void napi_gro_flush(napi_struct*, bool)'
  [A] 'function int netif_rx(sk_buff*)'
  [A] 'function bool ns_capable(user_namespace*, int)'
  [A] 'function timespec64 ns_to_timespec64(long long int)'
  [A] 'function int nvmem_cell_read_u32(device*, const char*, u32*)'
  [A] 'function int nvmem_cell_write(nvmem_cell*, void*, size_t)'
  [A] 'function int nvmem_device_read(nvmem_device*, unsigned int, unsigned long int, void*)'
  [A] 'function int nvmem_device_write(nvmem_device*, unsigned int, unsigned long int, void*)'
  [A] 'function int of_clk_add_provider(device_node*, void ()*, void*)'
  [A] 'function clk* of_clk_get_from_provider(of_phandle_args*)'
  [A] 'function clk* of_clk_src_onecell_get(of_phandle_args*, void*)'
  [A] 'function clk* of_clk_src_simple_get(of_phandle_args*, void*)'
  [A] 'function int of_count_phandle_with_args(const device_node*, const char*, const char*)'
  [A] 'function thermal_cooling_device* of_devfreq_cooling_register(device_node*, devfreq*)'
  [A] 'function bool of_dma_is_coherent(device_node*)'
  [A] 'function device_node* of_find_node_with_property(device_node*, const char*)'
  [A] 'function const __be32* of_get_address(device_node*, int, u64*, unsigned int*)'
  [A] 'function device_node* of_get_cpu_node(int, unsigned int*)'
  [A] 'function int of_irq_get(device_node*, int)'
  [A] 'function int of_irq_get_byname(device_node*, const char*)'
  [A] 'function int of_irq_parse_and_map_pci(const pci_dev*, u8, u8)'
  [A] 'function int of_irq_parse_one(device_node*, int, of_phandle_args*)'
  [A] 'function int of_modalias_node(device_node*, char*, int)'
  [A] 'function int of_phandle_iterator_init(of_phandle_iterator*, const device_node*, const char*, const char*, int)'
  [A] 'function int of_phandle_iterator_next(of_phandle_iterator*)'
  [A] 'function platform_device* of_platform_device_create(device_node*, const char*, device*)'
  [A] 'function int of_property_read_variable_u16_array(const device_node*, const char*, u16*, size_t, size_t)'
  [A] 'function void of_reserved_mem_device_release(device*)'
  [A] 'function bool of_thermal_is_trip_valid(thermal_zone_device*, int)'
  [A] 'function int param_get_string(char*, const kernel_param*)'
  [A] 'function int param_set_bool(const char*, const kernel_param*)'
  [A] 'function int param_set_copystring(const char*, const kernel_param*)'
  [A] 'function int pci_assign_resource(pci_dev*, int)'
  [A] 'function void pci_clear_master(pci_dev*)'
  [A] 'function u8 pci_common_swizzle(pci_dev*, u8*)'
  [A] 'function iommu_group* pci_device_group(device*)'
  [A] 'function void pci_disable_msi(pci_dev*)'
  [A] 'function pci_dev* pci_find_pcie_root_port(pci_dev*)'
  [A] 'function pci_dev* pci_get_device(unsigned int, unsigned int, pci_dev*)'
  [A] 'function int pci_load_and_free_saved_state(pci_dev*, pci_saved_state**)'
  [A] 'function irq_domain* pci_msi_create_irq_domain(fwnode_handle*, msi_domain_info*, irq_domain*)'
  [A] 'function void pci_msi_mask_irq(irq_data*)'
  [A] 'function void pci_msi_unmask_irq(irq_data*)'
  [A] 'function int pci_scan_root_bus_bridge(pci_host_bridge*)'
  [A] 'function pci_saved_state* pci_store_saved_state(pci_dev*)'
  [A] 'function void pci_walk_bus(pci_bus*, void ()*, void*)'
  [A] 'function int pci_write_config_word(const pci_dev*, int, unsigned short int)'
  [A] 'function int pcie_capability_read_word(pci_dev*, int, u16*)'
  [A] 'function int phy_calibrate(phy*)'
  [A] 'function void pipe_lock(pipe_inode_info*)'
  [A] 'function void pipe_unlock(pipe_inode_info*)'
  [A] 'function int pm_generic_resume(device*)'
  [A] 'function int pm_generic_runtime_resume(device*)'
  [A] 'function int pm_generic_runtime_suspend(device*)'
  [A] 'function int pm_generic_suspend(device*)'
  [A] 'function int pm_qos_add_notifier(int, notifier_block*)'
  [A] 'function void pm_qos_add_request(pm_qos_request*, int, s32)'
  [A] 'function int pm_qos_remove_notifier(int, notifier_block*)'
  [A] 'function void pm_qos_remove_request(pm_qos_request*)'
  [A] 'function int pm_qos_request_active(pm_qos_request*)'
  [A] 'function void pm_qos_update_request(pm_qos_request*, s32)'
  [A] 'function int pm_runtime_barrier(device*)'
  [A] 'function void pm_runtime_no_callbacks(device*)'
  [A] 'function void pm_system_wakeup()'
  [A] 'function int power_supply_set_property(power_supply*, power_supply_property, const power_supply_propval*)'
  [A] 'function proc_dir_entry* proc_create_net_single(const char*, umode_t, proc_dir_entry*, void ()*, void*)'
  [A] 'function proc_dir_entry* proc_mkdir_data(const char*, umode_t, proc_dir_entry*, void*)'
  [A] 'function int qcom_scm_io_readl(long long unsigned int, unsigned int*)'
  [A] 'function int qcom_scm_io_writel(long long unsigned int, unsigned int)'
  [A] 'function int qcom_scm_pas_shutdown(u32)'
  [A] 'function int qcom_scm_qsmmu500_wait_safe_toggle(bool)'
  [A] 'function qcom_smem_state* qcom_smem_state_get(device*, const char*, unsigned int*)'
  [A] 'function int qcom_smem_state_update_bits(qcom_smem_state*, u32, u32)'
  [A] 'function void qdisc_reset(Qdisc*)'
  [A] 'function unsigned int radix_tree_gang_lookup(const xarray*, void**, unsigned long int, unsigned int)'
  [A] 'function void radix_tree_iter_delete(xarray*, radix_tree_iter*, void**)'
  [A] 'function void rational_best_approximation(unsigned long int, unsigned long int, unsigned long int, unsigned long int, unsigned long int*, unsigned long int*)'
  [A] 'function int raw_notifier_call_chain(raw_notifier_head*, unsigned long int, void*)'
  [A] 'function int raw_notifier_chain_register(raw_notifier_head*, notifier_block*)'
  [A] 'function int raw_notifier_chain_unregister(raw_notifier_head*, notifier_block*)'
  [A] 'function rb_node* rb_last(const rb_root*)'
  [A] 'function bool refcount_dec_and_lock(refcount_struct*, spinlock*)'
  [A] 'function bool refcount_dec_not_one(refcount_struct*)'
  [A] 'function void regcache_cache_only(regmap*, bool)'
  [A] 'function int regcache_sync_region(regmap*, unsigned int, unsigned int)'
  [A] 'function int register_netevent_notifier(notifier_block*)'
  [A] 'function ctl_table_header* register_sysctl_table(ctl_table*)'
  [A] 'function int regmap_irq_get_virq(regmap_irq_chip_data*, int)'
  [A] 'function int regulator_count_voltages(regulator*)'
  [A] 'function int regulator_disable_deferred(regulator*, int)'
  [A] 'function int regulator_get_current_limit(regulator*)'
  [A] 'function int regulator_get_voltage(regulator*)'
  [A] 'function int regulator_list_voltage(regulator*, unsigned int)'
  [A] 'function void regulator_lock(regulator_dev*)'
  [A] 'function int regulator_register_notifier(regulator*, notifier_block*)'
  [A] 'function void regulator_unlock(regulator_dev*)'
  [A] 'function int regulator_unregister_notifier(regulator*, notifier_block*)'
  [A] 'function int regulatory_set_wiphy_regd(wiphy*, ieee80211_regdomain*)'
  [A] 'function int report_iommu_fault(iommu_domain*, device*, unsigned long int, int)'
  [A] 'function unsigned long int round_jiffies(unsigned long int)'
  [A] 'function int rtnl_trylock()'
  [A] 'function void rtnl_unregister_all(int)'
  [A] 'function void save_stack_trace(stack_trace*)'
  [A] 'function void save_stack_trace_tsk(task_struct*, stack_trace*)'
  [A] 'function int sched_setattr(task_struct*, const sched_attr*)'
  [A] 'function int scsi_autopm_get_device(scsi_device*)'
  [A] 'function void scsi_autopm_put_device(scsi_device*)'
  [A] 'function int scsi_block_when_processing_errors(scsi_device*)'
  [A] 'function int scsi_device_get(scsi_device*)'
  [A] 'function void scsi_device_put(scsi_device*)'
  [A] 'function int scsi_ioctl(scsi_device*, int, void*)'
  [A] 'function int scsi_ioctl_block_when_processing_errors(scsi_device*, int, bool)'
  [A] 'function int scsi_register_interface(class_interface*)'
  [A] 'function void sdev_prefix_printk(const char*, const scsi_device*, const char*, const char*, ...)'
  [A] 'function int send_sig_info(int, kernel_siginfo*, task_struct*)'
  [A] 'function void seq_hex_dump(seq_file*, const char*, int, int, int, void*, size_t, bool)'
  [A] 'function uart_8250_port* serial8250_get_port(int)'
  [A] 'function int set_cpus_allowed_ptr(task_struct*, const cpumask*)'
  [A] 'function void set_normalized_timespec64(timespec64*, long long int, long long int)'
  [A] 'function int sg_alloc_table_from_pages(sg_table*, page**, unsigned int, unsigned int, unsigned long int, gfp_t)'
  [A] 'function unsigned long int sg_copy_from_buffer(scatterlist*, unsigned int, void*, unsigned long int)'
  [A] 'function unsigned long int sg_copy_to_buffer(scatterlist*, unsigned int, void*, unsigned long int)'
  [A] 'function int sg_scsi_ioctl(request_queue*, gendisk*, fmode_t, scsi_ioctl_command*)'
  [A] 'function int sigprocmask(int, sigset_t*, sigset_t*)'
  [A] 'function ssize_t simple_write_to_buffer(void*, size_t, loff_t*, void*, size_t)'
  [A] 'function int skb_append_pagefrags(sk_buff*, page*, int, size_t)'
  [A] 'function unsigned int skb_checksum(const sk_buff*, int, int, unsigned int)'
  [A] 'function sk_buff* skb_copy(const sk_buff*, unsigned int)'
  [A] 'function int skb_store_bits(sk_buff*, int, void*, int)'
  [A] 'function char* skip_spaces(const char*)'
  [A] 'function void smp_call_function(smp_call_func_t, void*, int)'
  [A] 'function void snd_ctl_notify(snd_card*, unsigned int, snd_ctl_elem_id*)'
  [A] 'function int snd_ctl_remove(snd_card*, snd_kcontrol*)'
  [A] 'function snd_info_entry* snd_info_create_module_entry(module*, const char*, snd_info_entry*)'
  [A] 'function int snd_pcm_stop(snd_pcm_substream*, int)'
  [A] 'function int snd_soc_add_component_controls(snd_soc_component*, const snd_kcontrol_new*, unsigned int)'
  [A] 'function int snd_soc_bytes_tlv_callback(snd_kcontrol*, int, unsigned int, unsigned int*)'
  [A] 'function snd_kcontrol* snd_soc_card_get_kcontrol(snd_soc_card*, const char*)'
  [A] 'function void snd_soc_component_exit_regmap(snd_soc_component*)'
  [A] 'function void snd_soc_component_init_regmap(snd_soc_component*, regmap*)'
  [A] 'function int snd_soc_dai_get_channel_map(snd_soc_dai*, unsigned int*, unsigned int*, unsigned int*, unsigned int*)'
  [A] 'function int snd_soc_dai_set_channel_map(snd_soc_dai*, unsigned int, unsigned int*, unsigned int, unsigned int*)'
  [A] 'function int snd_soc_dai_set_fmt(snd_soc_dai*, unsigned int)'
  [A] 'function snd_soc_dapm_widget* snd_soc_dapm_kcontrol_widget(snd_kcontrol*)'
  [A] 'function int snd_soc_dapm_mixer_update_power(snd_soc_dapm_context*, snd_kcontrol*, int, snd_soc_dapm_update*)'
  [A] 'function int snd_soc_dapm_mux_update_power(snd_soc_dapm_context*, snd_kcontrol*, int, soc_enum*, snd_soc_dapm_update*)'
  [A] 'function int snd_soc_dapm_new_controls(snd_soc_dapm_context*, const snd_soc_dapm_widget*, int)'
  [A] 'function int snd_soc_dapm_new_widgets(snd_soc_card*)'
  [A] 'function int snd_soc_get_volsw(snd_kcontrol*, snd_ctl_elem_value*)'
  [A] 'function int snd_soc_get_volsw_sx(snd_kcontrol*, snd_ctl_elem_value*)'
  [A] 'function int snd_soc_info_multi_ext(snd_kcontrol*, snd_ctl_elem_info*)'
  [A] 'function int snd_soc_info_volsw_sx(snd_kcontrol*, snd_ctl_elem_info*)'
  [A] 'function snd_soc_component* snd_soc_lookup_component(device*, const char*)'
  [A] 'function int snd_soc_new_compress(snd_soc_pcm_runtime*, int)'
  [A] 'function int snd_soc_put_volsw(snd_kcontrol*, snd_ctl_elem_value*)'
  [A] 'function int snd_soc_put_volsw_sx(snd_kcontrol*, snd_ctl_elem_value*)'
  [A] 'function int snd_soc_unregister_card(snd_soc_card*)'
  [A] 'function void snd_timer_interrupt(snd_timer*, unsigned long int)'
  [A] 'function int snd_usb_enable_audio_stream(snd_usb_substream*, int, bool)'
  [A] 'function soc_device* soc_device_register(soc_device_attribute*)'
  [A] 'function void soc_device_unregister(soc_device*)'
  [A] 'function void sock_efree(sk_buff*)'
  [A] 'function int spi_register_controller(spi_controller*)'
  [A] 'function void spi_unregister_controller(spi_controller*)'
  [A] 'function int sprint_symbol(char*, unsigned long int)'
  [A] 'function void srcu_init_notifier_head(srcu_notifier_head*)'
  [A] 'function int srcu_notifier_call_chain(srcu_notifier_head*, unsigned long int, void*)'
  [A] 'function int srcu_notifier_chain_register(srcu_notifier_head*, notifier_block*)'
  [A] 'function int srcu_notifier_chain_unregister(srcu_notifier_head*, notifier_block*)'
  [A] 'function void stack_trace_print(const unsigned long int*, unsigned int, int)'
  [A] 'function char* strchrnul(const char*, int)'
  [A] 'function unsigned long int strlcat(char*, const char*, size_t)'
  [A] 'function char* strnchr(const char*, unsigned long int, int)'
  [A] 'function char* strnstr(const char*, const char*, unsigned long int)'
  [A] 'function char* strreplace(char*, char, char)'
  [A] 'function unsigned int swiotlb_max_segment()'
  [A] 'function bool synchronize_hardirq(unsigned int)'
  [A] 'function int sysfs_create_bin_file(kobject*, const bin_attribute*)'
  [A] 'function int sysfs_create_files(kobject*, const attribute* const*)'
  [A] 'function void sysfs_remove_bin_file(kobject*, const bin_attribute*)'
  [A] 'function void sysfs_remove_file_ns(kobject*, const attribute*, void*)'
  [A] 'function void sysfs_remove_files(kobject*, const attribute* const*)'
  [A] 'function void time64_to_tm(time64_t, int, tm*)'
  [A] 'function const char* trace_print_array_seq(trace_seq*, void*, int, size_t)'
  [A] 'function const char* trace_print_flags_seq(trace_seq*, const char*, unsigned long int, const trace_print_flags*)'
  [A] 'function const char* trace_print_hex_seq(trace_seq*, const unsigned char*, int, bool)'
  [A] 'function void tracing_off()'
  [A] 'function int ufshcd_query_attr(ufs_hba*, query_opcode, attr_idn, u8, u8, u32*)'
  [A] 'function int ufshcd_query_descriptor_retry(ufs_hba*, query_opcode, desc_idn, u8, u8, u8*, int*)'
  [A] 'function int ufshcd_query_flag(ufs_hba*, query_opcode, flag_idn, bool*)'
  [A] 'function void uio_unregister_device(uio_info*)'
  [A] 'function void unlock_page(page*)'
  [A] 'function void unregister_gadget_item(config_item*)'
  [A] 'function int unregister_netevent_notifier(notifier_block*)'
  [A] 'function void unregister_sysctl_table(ctl_table_header*)'
  [A] 'function int usb_add_phy_dev(usb_phy*)'
  [A] 'function usb_device* usb_alloc_dev(usb_device*, usb_bus*, unsigned int)'
  [A] 'function int usb_assign_descriptors(usb_function*, usb_descriptor_header**, usb_descriptor_header**, usb_descriptor_header**, usb_descriptor_header**)'
  [A] 'function void usb_composite_setup_continue(usb_composite_dev*)'
  [A] 'function int usb_ep_set_wedge(usb_ep*)'
  [A] 'function void usb_free_all_descriptors(usb_function*)'
  [A] 'function int usb_gadget_vbus_connect(usb_gadget*)'
  [A] 'function int usb_gadget_vbus_disconnect(usb_gadget*)'
  [A] 'function int usb_gadget_wakeup(usb_gadget*)'
  [A] 'function urb* usb_get_urb(urb*)'
  [A] 'function usb_string* usb_gstrings_attach(usb_composite_dev*, usb_gadget_strings**, unsigned int)'
  [A] 'function usb_device* usb_hub_find_child(usb_device*, int)'
  [A] 'function void usb_register_notify(notifier_block*)'
  [A] 'function void usb_remove_phy(usb_phy*)'
  [A] 'function void usb_set_device_state(usb_device*, usb_device_state)'
  [A] 'function void usb_unregister_notify(notifier_block*)'
  [A] 'function v4l2_ctrl* v4l2_ctrl_find(v4l2_ctrl_handler*, u32)'
  [A] 'function const char* v4l2_ctrl_get_name(u32)'
  [A] 'function void v4l2_ctrl_handler_free(v4l2_ctrl_handler*)'
  [A] 'function int v4l2_ctrl_handler_init_class(v4l2_ctrl_handler*, unsigned int, lock_class_key*, const char*)'
  [A] 'function v4l2_ctrl* v4l2_ctrl_new_custom(v4l2_ctrl_handler*, const v4l2_ctrl_config*, void*)'
  [A] 'function v4l2_ctrl* v4l2_ctrl_new_std(v4l2_ctrl_handler*, const v4l2_ctrl_ops*, u32, s64, s64, u64, s64)'
  [A] 'function v4l2_ctrl* v4l2_ctrl_new_std_menu(v4l2_ctrl_handler*, const v4l2_ctrl_ops*, u32, u8, u64, u8)'
  [A] 'function int v4l2_device_register(device*, v4l2_device*)'
  [A] 'function int v4l2_device_register_subdev(v4l2_device*, v4l2_subdev*)'
  [A] 'function int v4l2_device_register_subdev_nodes(v4l2_device*)'
  [A] 'function void v4l2_device_unregister(v4l2_device*)'
  [A] 'function void v4l2_device_unregister_subdev(v4l2_subdev*)'
  [A] 'function int v4l2_event_dequeue(v4l2_fh*, v4l2_event*, int)'
  [A] 'function int v4l2_event_pending(v4l2_fh*)'
  [A] 'function void v4l2_event_queue(video_device*, const v4l2_event*)'
  [A] 'function void v4l2_event_queue_fh(v4l2_fh*, const v4l2_event*)'
  [A] 'function int v4l2_event_subscribe(v4l2_fh*, const v4l2_event_subscription*, unsigned int, const v4l2_subscribed_event_ops*)'
  [A] 'function int v4l2_event_unsubscribe(v4l2_fh*, const v4l2_event_subscription*)'
  [A] 'function void v4l2_fh_add(v4l2_fh*)'
  [A] 'function void v4l2_fh_del(v4l2_fh*)'
  [A] 'function void v4l2_fh_exit(v4l2_fh*)'
  [A] 'function void v4l2_fh_init(v4l2_fh*, video_device*)'
  [A] 'function int v4l2_fh_open(file*)'
  [A] 'function int v4l2_fh_release(file*)'
  [A] 'function int v4l2_s_ctrl(v4l2_fh*, v4l2_ctrl_handler*, v4l2_control*)'
  [A] 'function void v4l2_subdev_init(v4l2_subdev*, const v4l2_subdev_ops*)'
  [A] 'function void vb2_buffer_done(vb2_buffer*, vb2_buffer_state)'
  [A] 'function int vb2_dqbuf(vb2_queue*, v4l2_buffer*, bool)'
  [A] 'function int vb2_qbuf(vb2_queue*, media_device*, v4l2_buffer*)'
  [A] 'function int vb2_queue_init(vb2_queue*)'
  [A] 'function void vb2_queue_release(vb2_queue*)'
  [A] 'function int vb2_reqbufs(vb2_queue*, v4l2_requestbuffers*)'
  [A] 'function int vb2_streamoff(vb2_queue*, v4l2_buf_type)'
  [A] 'function int vb2_streamon(vb2_queue*, v4l2_buf_type)'
  [A] 'function video_device* video_devdata(file*)'
  [A] 'function video_device* video_device_alloc()'
  [A] 'function void video_device_release(video_device*)'
  [A] 'function void video_device_release_empty(video_device*)'
  [A] 'function long int video_ioctl2(file*, unsigned int, unsigned long int)'
  [A] 'function void video_unregister_device(video_device*)'
  [A] 'function int vm_iomap_memory(vm_area_struct*, phys_addr_t, unsigned long int)'
  [A] 'function int vprintk(const char*, __va_list)'
  [A] 'function void wireless_send_event(net_device*, unsigned int, iwreq_data*, const char*)'
  [A] 'function unsigned int work_busy(work_struct*)'

Bug: 151133259

Change-Id: I029aaa288d1b0697291bdd2b0531626ec28a4cd0
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Signed-off-by: Matthias Maennich <maennich@google.com>
2020-03-31 09:25:07 +02:00
John Stultz
f08ddd2d45 ANDROID: ABI/Whitelist: update for db845c
Yet again, adds a whitelist for the symbols used by the db845c
device and updates the ABI representation accordingly.

abi report:

 Comparing ABI against expected definition (abi_gki_aarch64.xml)
========================================================
 ABI report has been created at /home/docker/repo/out_abi/android-5.4/dist/abi.report
 ABI DIFFERENCES HAVE BEEN DETECTED! (RC=8)
========================================================
Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 2 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

2 Added functions:

  [A] 'function bool __list_add_valid(list_head*, list_head*, list_head*)'
  [A] 'function bool __list_del_entry_valid(list_head*)'

Bug: 146449535
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Ic755e50b21aba2ae173724b27a23a520e756e6b2
2020-03-30 23:58:31 +00:00
A. Cody Schuffelen
44c2c8729b ANDROID: Follow aosp/1233812 to update ABI whitelists post-TPM addition.
Bug: 152440615
Test: build only
Change-Id: I99be6f6077340074dbfffa4a65c7d368e4601b03
Signed-off-by: A. Cody Schuffelen <schuffelen@google.com>
2020-03-26 21:28:52 +00:00
Greg Kroah-Hartman
383156c695 ANDROID: GKI: workqueue.h: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
padding to struct work_struct and struct delayed_work

Based on a change made to the RHEL/CENTOS 8 kernel.

Leaf changes summary: 129 artifacts changed
Changed leaf types summary: 129 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

type 'struct work_struct' changed:
  type size changed from 256 to 384 (in bits)
  2 data member insertions:
    'u64 work_struct::android_kabi_reserved1', at offset 256 (in bits) at workqueue.h:110:1
    'u64 work_struct::android_kabi_reserved2', at offset 320 (in bits) at workqueue.h:111:1

type 'struct delayed_work' changed:
  type size changed from 704 to 960 (in bits)
  2 data member insertions:
    'u64 delayed_work::android_kabi_reserved1', at offset 832 (in bits) at workqueue.h:126:1
    'u64 delayed_work::android_kabi_reserved2', at offset 896 (in bits) at workqueue.h:127:1

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5492a13e2430c1a5775aec52518144b7aa4f3268
2020-03-26 14:56:22 +01:00
Greg Kroah-Hartman
5b6494b7be ANDROID: GKI: fs.h: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
padding to a bunch of filesystem structures.

Based on a change made to the RHEL/CENTOS 8 kernel.

Leaf changes summary: 12 artifacts changed
Changed leaf types summary: 12 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct address_space at fs.h:445:1' changed:
  type size changed from 1280 to 1536 (in bits)
  4 data member insertions:
    'u64 address_space::android_kabi_reserved1', at offset 1280 (in bits) at fs.h:472:1
    'u64 address_space::android_kabi_reserved2', at offset 1344 (in bits) at fs.h:473:1
    'u64 address_space::android_kabi_reserved3', at offset 1408 (in bits) at fs.h:474:1
    'u64 address_space::android_kabi_reserved4', at offset 1472 (in bits) at fs.h:475:1

'struct address_space_operations at fs.h:362:1' changed:
  type size changed from 1344 to 1600 (in bits)
  4 data member insertions:
    'u64 address_space_operations::android_kabi_reserved1', at offset 1344 (in bits) at fs.h:412:1
    'u64 address_space_operations::android_kabi_reserved2', at offset 1408 (in bits) at fs.h:413:1
    'u64 address_space_operations::android_kabi_reserved3', at offset 1472 (in bits) at fs.h:414:1
    'u64 address_space_operations::android_kabi_reserved4', at offset 1536 (in bits) at fs.h:415:1

'struct block_device at fs.h:473:1' changed:
  type size changed from 1728 to 1984 (in bits)
  4 data member insertions:
    'u64 block_device::android_kabi_reserved1', at offset 1728 (in bits) at fs.h:521:1
    'u64 block_device::android_kabi_reserved2', at offset 1792 (in bits) at fs.h:522:1
    'u64 block_device::android_kabi_reserved3', at offset 1856 (in bits) at fs.h:523:1
    'u64 block_device::android_kabi_reserved4', at offset 1920 (in bits) at fs.h:524:1

'struct file_lock at fs.h:1080:1' changed:
  type size changed from 1728 to 1984 (in bits)
  3 data member insertions:
    'list_head file_lock::android_reserved1', at offset 1728 (in bits) at fs.h:1142:1
    'u64 file_lock::android_kabi_reserved1', at offset 1856 (in bits) at fs.h:1143:1
    'u64 file_lock::android_kabi_reserved2', at offset 1920 (in bits) at fs.h:1144:1

'struct file_lock_operations at fs.h:1030:1' changed:
  type size changed from 128 to 256 (in bits)
  2 data member insertions:
    'u64 file_lock_operations::android_kabi_reserved1', at offset 128 (in bits) at fs.h:1053:1
    'u64 file_lock_operations::android_kabi_reserved2', at offset 192 (in bits) at fs.h:1054:1

'struct file_operations at fs.h:1843:1' changed:
  type size changed from 2048 to 2304 (in bits)
  4 data member insertions:
    'u64 file_operations::android_kabi_reserved1', at offset 2048 (in bits) at fs.h:1918:1
    'u64 file_operations::android_kabi_reserved2', at offset 2112 (in bits) at fs.h:1919:1
    'u64 file_operations::android_kabi_reserved3', at offset 2176 (in bits) at fs.h:1920:1
    'u64 file_operations::android_kabi_reserved4', at offset 2240 (in bits) at fs.h:1921:1

'struct file_system_type at fs.h:2245:1' changed:
  type size changed from 640 to 896 (in bits)
  4 data member insertions:
    'u64 file_system_type::android_kabi_reserved1', at offset 640 (in bits) at fs.h:2322:1
    'u64 file_system_type::android_kabi_reserved2', at offset 704 (in bits) at fs.h:2323:1
    'u64 file_system_type::android_kabi_reserved3', at offset 768 (in bits) at fs.h:2324:1
    'u64 file_system_type::android_kabi_reserved4', at offset 832 (in bits) at fs.h:2325:1

'struct inode at fs.h:628:1' changed:
  type size changed from 4800 to 5184 (in bits)
  2 data member insertions:
    'u64 inode::android_kabi_reserved1', at offset 5056 (in bits) at fs.h:756:1
    'u64 inode::android_kabi_reserved2', at offset 5120 (in bits) at fs.h:757:1

'struct inode_operations at fs.h:1885:1' changed:
  type size changed from 1536 to 2048 (in bits)
  4 data member insertions:
    'u64 inode_operations::android_kabi_reserved1', at offset 1472 (in bits) at fs.h:1955:1
    'u64 inode_operations::android_kabi_reserved2', at offset 1536 (in bits) at fs.h:1956:1
    'u64 inode_operations::android_kabi_reserved3', at offset 1600 (in bits) at fs.h:1957:1
    'u64 inode_operations::android_kabi_reserved4', at offset 1664 (in bits) at fs.h:1958:1

'struct lock_manager_operations at fs.h:1035:1' changed:
  type size changed from 448 to 576 (in bits)
  2 data member insertions:
    'u64 lock_manager_operations::android_kabi_reserved1', at offset 448 (in bits) at fs.h:1066:1
    'u64 lock_manager_operations::android_kabi_reserved2', at offset 512 (in bits) at fs.h:1067:1

'struct super_block at fs.h:1431:1' changed:
  type size changed from 11776 to 12288 (in bits)
  4 data member insertions:
    'u64 super_block::android_kabi_reserved1', at offset 11648 (in bits) at fs.h:1592:1
    'u64 super_block::android_kabi_reserved2', at offset 11712 (in bits) at fs.h:1593:1
    'u64 super_block::android_kabi_reserved3', at offset 11776 (in bits) at fs.h:1594:1
    'u64 super_block::android_kabi_reserved4', at offset 11840 (in bits) at fs.h:1595:1

'struct super_operations at fs.h:1966:1' changed:
  type size changed from 1920 to 2176 (in bits)
  4 data member insertions:
    'u64 super_operations::android_kabi_reserved1', at offset 1920 (in bits) at fs.h:2048:1
    'u64 super_operations::android_kabi_reserved2', at offset 1984 (in bits) at fs.h:2049:1
    'u64 super_operations::android_kabi_reserved3', at offset 2048 (in bits) at fs.h:2050:1
    'u64 super_operations::android_kabi_reserved4', at offset 2112 (in bits) at fs.h:2051:1

Bug: 151154716
Change-Id: Ida6d98d30f292c980ab07e0250fec5268c4c87ed
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-03-25 18:20:02 +01:00
Greg Kroah-Hartman
6d164dd847 ANDROID: update ABI for 5.4.28
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct inode at fs.h:628:1' changed:
  type size changed from 4736 to 4800 (in bits)
  1 data member insertion:
    'atomic64_t inode::i_sequence', at offset 2688 (in bits) at fs.h:701:1
  there are data member changes:
  861 impacted interfaces:

Change-Id: I58496998ce4fa926345882aa0ec89a7c029575b9
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-03-25 15:14:01 +00:00
Liangcai Fan
a94bb98bfb ANDROID: ABI/Whitelist: update whitelist of unisoc
Update whitelist for the symbols used by the unisoc device and
updates the ABI representation accordingly.

Leaf changes summary: 52 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 52 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

52 Added functions:

  [A] 'function int __i2c_transfer(i2c_adapter*, i2c_msg*, int)'
  [A] 'function int __kfifo_to_user(__kfifo*, void*, unsigned long int, unsigned int*)'
  [A] 'function void __ndelay(unsigned long int)'
  [A] 'function void* __seq_open_private(file*, const seq_operations*, int)'
  [A] 'function int alarm_cancel(alarm*)'
  [A] 'function ktime_t alarm_expires_remaining(const alarm*)'
  [A] 'function void alarm_init(alarm*, alarmtimer_type, void ()*)'
  [A] 'function void alarm_start(alarm*, ktime_t)'
  [A] 'function rtc_device* alarmtimer_get_rtcdev()'
  [A] 'function void* bsearch(void*, void*, unsigned long int, unsigned long int, void ()*)'
  [A] 'function int clk_bulk_get(device*, int, clk_bulk_data*)'
  [A] 'function int config_ep_by_speed(usb_gadget*, usb_function*, usb_ep*)'
  [A] 'function int cpu_down(unsigned int)'
  [A] 'function int cpu_up(unsigned int)'
  [A] 'function int cpufreq_get_policy(cpufreq_policy*, unsigned int)'
  [A] 'function int dev_pm_opp_disable(device*, unsigned long int)'
  [A] 'function void dev_pm_opp_remove(device*, unsigned long int)'
  [A] 'function int device_wakeup_disable(device*)'
  [A] 'function char* devm_kstrdup(device*, const char*, unsigned int)'
  [A] 'function unsigned long int free_reserved_area(void*, void*, int, const char*)'
  [A] 'function bool hrtimer_active(const hrtimer*)'
  [A] 'function long long unsigned int hrtimer_forward(hrtimer*, long long int, long long int)'
  [A] 'function void iio_buffer_init(iio_buffer*)'
  [A] 'function void iio_buffer_put(iio_buffer*)'
  [A] 'function int kstrtobool_from_user(const char*, size_t, bool*)'
  [A] 'function int of_genpd_add_subdomain(of_phandle_args*, of_phandle_args*)'
  [A] 'function int of_n_addr_cells(device_node*)'
  [A] 'function int of_n_size_cells(device_node*)'
  [A] 'function nvmem_cell* of_nvmem_cell_get(device_node*, const char*)'
  [A] 'function int of_property_read_variable_u64_array(const device_node*, const char*, u64*, size_t, size_t)'
  [A] 'function long long unsigned int of_translate_address(device_node*, const unsigned int*)'
  [A] 'function const char* pin_get_name(pinctrl_dev*, const unsigned int)'
  [A] 'function int pinconf_generic_parse_dt_config(device_node*, pinctrl_dev*, unsigned long int**, unsigned int*)'
  [A] 'function void pm_relax(device*)'
  [A] 'function void pm_stay_awake(device*)'
  [A] 'function int power_supply_temp2resist_simple(power_supply_resistance_temp_table*, int, int)'
  [A] 'function int regulator_force_disable(regulator*)'
  [A] 'function int regulator_set_current_limit(regulator*, int, int)'
  [A] 'function int rt_mutex_trylock(rt_mutex*)'
  [A] 'function int seq_open(file*, const seq_operations*)'
  [A] 'function int seq_release_private(inode*, file*)'
  [A] 'function int seq_write(seq_file*, void*, unsigned long int)'
  [A] 'function void thermal_zone_device_unregister(thermal_zone_device*)'
  [A] 'function thermal_zone_device* thermal_zone_of_sensor_register(device*, int, void*, const thermal_zone_of_device_ops*)'
  [A] 'function usb_ep* usb_ep_autoconfig(usb_gadget*, usb_endpoint_descriptor*)'
  [A] 'function int usb_function_register(usb_function_driver*)'
  [A] 'function void usb_function_unregister(usb_function_driver*)'
  [A] 'function int usb_interface_id(usb_configuration*, usb_function*)'
  [A] 'function config_group* usb_os_desc_prepare_interf_dir(config_group*, int, usb_os_desc**, char**, module*)'
  [A] 'function void usb_put_function_instance(usb_function_instance*)'
  [A] 'function int usb_string_id(usb_composite_dev*)'
  [A] 'function int vsprintf(char*, const char*, va_list)'

Bug: 147075469
Change-Id: Ibc08112e2e6e9821ea843ae218afa1dabff7adca
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
2020-03-25 15:14:02 +08:00
Eric Biggers
5661faff34 ANDROID: scsi: ufs: add ->map_sg_crypto() variant op
Add a variant op ->map_sg_crypto() which runs at the end of
ufshcd_map_sg().

This is needed to support inline crypto on nonstandard hardware that
enables and configures crypto in the PRD entries
(struct ufshcd_sg_entry) instead of in the UTRD
(struct utp_transfer_req_desc) which the UFS standard specifies.

Bug: 129991660
Change-Id: I92bb52d0022d2e9de79a40d9888e84db4a8116b3
Signed-off-by: Eric Biggers <ebiggers@google.com>
2020-03-24 21:10:23 +00:00
John Stultz
8874c96125 ANDROID: ABI/Whitelist: update for hikey960
This adds a whitelist for the symbols used by the hikey960
device, adds the list to the build.config.gki.aarch64 file,
and updates the abi_gki_aarch64.xml file with build_abi.sh

Leaf changes summary: 464 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 464 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

464 Added functions:

  [A] 'function void __blk_mq_end_request(request*, blk_status_t)'
  [A] 'function int __blkdev_issue_discard(block_device*, sector_t, sector_t, gfp_t, int, bio**)'
  [A] 'function int __blkdev_issue_zeroout(block_device*, sector_t, sector_t, gfp_t, bio**, unsigned int)'
  [A] 'function int __close_fd(files_struct*, unsigned int)'
  [A] 'function dma_chan* __dma_request_channel(const dma_cap_mask_t*, dma_filter_fn, void*, device_node*)'
  [A] 'function void __do_once_done(bool*, static_key_true*, unsigned long int*)'
  [A] 'function bool __do_once_start(bool*, unsigned long int*)'
  [A] 'function int __ion_device_add_heap(ion_heap*, module*)'
  [A] 'function int __mmc_claim_host(mmc_host*, mmc_ctx*, atomic_t*)'
  [A] 'function int __mmc_send_status(mmc_card*, u32*, unsigned int)'
  [A] 'function void __mmdrop(mm_struct*)'
  [A] 'function void __module_put_and_exit(module*, long int)'
  [A] 'function sock* __netlink_kernel_create(net*, int, module*, netlink_kernel_cfg*)'
  [A] 'function int __register_chrdev(unsigned int, unsigned int, unsigned int, const char*, const file_operations*)'
  [A] 'function void __serio_register_port(serio*, module*)'
  [A] 'function void __unregister_chrdev(unsigned int, unsigned int, unsigned int, const char*)'
  [A] 'function void _dev_crit(const device*, const char*, ...)'
  [A] 'function void add_wait_queue_exclusive(wait_queue_head*, wait_queue_entry*)'
  [A] 'function int amba_driver_register(amba_driver*)'
  [A] 'function void amba_driver_unregister(amba_driver*)'
  [A] 'function void amba_release_regions(amba_device*)'
  [A] 'function int amba_request_regions(amba_device*, const char*)'
  [A] 'function int anon_inode_getfd(const char*, const file_operations*, void*, int)'
  [A] 'function void arch_set_freq_scale(cpumask*, unsigned long int, unsigned long int)'
  [A] 'function async_cookie_t async_schedule_node(async_func_t, void*, int)'
  [A] 'function void baswap(bdaddr_t*, const bdaddr_t*)'
  [A] 'function char* bin2hex(char*, void*, unsigned long int)'
  [A] 'function int bio_add_page(bio*, page*, unsigned int, unsigned int)'
  [A] 'function void bio_associate_blkg(bio*)'
  [A] 'function void bio_endio(bio*)'
  [A] 'function void bio_init(bio*, bio_vec*, unsigned short int)'
  [A] 'function void bio_put(bio*)'
  [A] 'function void blk_execute_rq_nowait(request_queue*, gendisk*, request*, int, rq_end_io_fn*)'
  [A] 'function void blk_freeze_queue_start(request_queue*)'
  [A] 'function bool blk_get_queue(request_queue*)'
  [A] 'function request* blk_mq_alloc_request(request_queue*, unsigned int, unsigned int)'
  [A] 'function request* blk_mq_alloc_request_hctx(request_queue*, unsigned int, blk_mq_req_flags_t, unsigned int)'
  [A] 'function void blk_mq_delay_kick_requeue_list(request_queue*, unsigned long int)'
  [A] 'function void blk_mq_free_request(request*)'
  [A] 'function void blk_mq_freeze_queue(request_queue*)'
  [A] 'function void blk_mq_freeze_queue_wait(request_queue*)'
  [A] 'function int blk_mq_freeze_queue_wait_timeout(request_queue*, unsigned long int)'
  [A] 'function int blk_mq_pci_map_queues(blk_mq_queue_map*, pci_dev*, int)'
  [A] 'function int blk_mq_request_completed(request*)'
  [A] 'function void blk_mq_requeue_request(request*, bool)'
  [A] 'function void blk_mq_run_hw_queues(request_queue*, bool)'
  [A] 'function request* blk_mq_tag_to_rq(blk_mq_tags*, unsigned int)'
  [A] 'function void blk_mq_tagset_busy_iter(blk_mq_tag_set*, busy_tag_iter_fn*, void*)'
  [A] 'function void blk_mq_tagset_wait_completed_request(blk_mq_tag_set*)'
  [A] 'function void blk_mq_unfreeze_queue(request_queue*)'
  [A] 'function u32 blk_mq_unique_tag(request*)'
  [A] 'function void blk_mq_update_nr_hw_queues(blk_mq_tag_set*, int)'
  [A] 'function int blk_poll(request_queue*, unsigned int, bool)'
  [A] 'function void blk_put_queue(request_queue*)'
  [A] 'function bool blk_queue_can_use_dma_map_merging(request_queue*, device*)'
  [A] 'function void blk_queue_chunk_sectors(request_queue*, unsigned int)'
  [A] 'function void blk_queue_flag_clear(unsigned int, request_queue*)'
  [A] 'function bool blk_queue_flag_test_and_set(unsigned int, request_queue*)'
  [A] 'function void blk_queue_rq_timeout(request_queue*, unsigned int)'
  [A] 'function void blk_queue_virt_boundary(request_queue*, unsigned long int)'
  [A] 'function int blk_rq_map_user(request_queue*, request*, rq_map_data*, void*, unsigned long int, gfp_t)'
  [A] 'function int blk_rq_unmap_user(bio*)'
  [A] 'function void blk_set_queue_dying(request_queue*)'
  [A] 'function void blk_sync_queue(request_queue*)'
  [A] 'function bool blk_update_request(request*, blk_status_t, unsigned int)'
  [A] 'function block_device* blkdev_get_by_path(const char*, unsigned int, void*)'
  [A] 'function int blkdev_issue_flush(block_device*, unsigned int, long long unsigned int*)'
  [A] 'function void blkdev_put(block_device*, unsigned int)'
  [A] 'function sock* bt_accept_dequeue(sock*, socket*)'
  [A] 'function void bt_accept_enqueue(sock*, sock*, bool)'
  [A] 'function void bt_accept_unlink(sock*)'
  [A] 'function void bt_procfs_cleanup(net*, const char*)'
  [A] 'function int bt_procfs_init(net*, const char*, bt_sock_list*, void ()*)'
  [A] 'function int bt_sock_ioctl(socket*, unsigned int, unsigned long int)'
  [A] 'function void bt_sock_link(bt_sock_list*, sock*)'
  [A] 'function __poll_t bt_sock_poll(file*, socket*, poll_table*)'
  [A] 'function void bt_sock_reclassify_lock(sock*, int)'
  [A] 'function int bt_sock_register(int, const net_proto_family*)'
  [A] 'function int bt_sock_stream_recvmsg(socket*, msghdr*, size_t, int)'
  [A] 'function void bt_sock_unlink(bt_sock_list*, sock*)'
  [A] 'function void bt_sock_unregister(int)'
  [A] 'function int bt_sock_wait_ready(sock*, unsigned long int)'
  [A] 'function int bt_sock_wait_state(sock*, int, unsigned long int)'
  [A] 'function void bt_warn(const char*, ...)'
  [A] 'function int bus_register_notifier(bus_type*, notifier_block*)'
  [A] 'function int bus_unregister_notifier(bus_type*, notifier_block*)'
  [A] 'function const element* cfg80211_find_elem_match(unsigned char, const unsigned char*, unsigned int, const unsigned char*, unsigned int, unsigned int)'
  [A] 'function const element* cfg80211_find_vendor_elem(unsigned int, int, const u8*, unsigned int)'
  [A] 'function int check_disk_change(block_device*)'
  [A] 'function void cleanup_srcu_struct(srcu_struct*)'
  [A] 'function page* cma_alloc(cma*, unsigned long int, unsigned int, bool)'
  [A] 'function int cma_for_each_area(void ()*, void*)'
  [A] 'function const char* cma_get_name(const cma*)'
  [A] 'function bool cma_release(cma*, const page*, unsigned int)'
  [A] 'function bool completion_done(completion*)'
  [A] 'function int cpufreq_enable_boost_support()'
  [A] 'function int cpufreq_generic_frequency_table_verify(cpufreq_policy_data*)'
  [A] 'function unsigned int cpufreq_generic_get(unsigned int)'
  [A] 'function int cpufreq_generic_suspend(cpufreq_policy*)'
  [A] 'function timespec64 current_time(inode*)'
  [A] 'function void d_add(dentry*, inode*)'
  [A] 'function dentry* d_alloc_name(dentry*, const char*)'
  [A] 'function void d_delete(dentry*)'
  [A] 'function void dev_pm_clear_wake_irq(device*)'
  [A] 'function void dev_pm_opp_free_cpufreq_table(device*, cpufreq_frequency_table**)'
  [A] 'function unsigned long int dev_pm_opp_get_max_transition_latency(device*)'
  [A] 'function int dev_pm_opp_get_sharing_cpus(device*, cpumask*)'
  [A] 'function unsigned long int dev_pm_opp_get_suspend_opp_freq(device*)'
  [A] 'function int dev_pm_opp_init_cpufreq_table(device*, cpufreq_frequency_table**)'
  [A] 'function int dev_pm_opp_of_cpumask_add_table(const cpumask*)'
  [A] 'function void dev_pm_opp_of_cpumask_remove_table(const cpumask*)'
  [A] 'function int dev_pm_opp_of_get_sharing_cpus(device*, cpumask*)'
  [A] 'function void dev_pm_opp_of_register_em(cpumask*)'
  [A] 'function void dev_pm_opp_put_regulators(opp_table*)'
  [A] 'function int dev_pm_opp_set_rate(device*, unsigned long int)'
  [A] 'function opp_table* dev_pm_opp_set_regulators(device*, const char* const*, unsigned int)'
  [A] 'function int dev_pm_opp_set_sharing_cpus(device*, const cpumask*)'
  [A] 'function int dev_pm_qos_expose_latency_tolerance(device*)'
  [A] 'function void dev_pm_qos_hide_latency_tolerance(device*)'
  [A] 'function int dev_pm_qos_update_user_latency_tolerance(device*, int)'
  [A] 'function int dev_pm_set_dedicated_wake_irq(device*, int)'
  [A] 'function devfreq* devfreq_add_device(device*, devfreq_dev_profile*, const char*, void*)'
  [A] 'function int devfreq_remove_device(devfreq*)'
  [A] 'function int device_create_bin_file(device*, const bin_attribute*)'
  [A] 'function int device_move(device*, device*, dpm_order)'
  [A] 'function int device_property_read_string_array(device*, const char*, const char**, size_t)'
  [A] 'function void device_remove_bin_file(device*, const bin_attribute*)'
  [A] 'function bool device_remove_file_self(device*, const device_attribute*)'
  [A] 'function clk* devm_get_clk_from_child(device*, device_node*, const char*)'
  [A] 'function char* devm_kasprintf(device*, unsigned int, const char*, ...)'
  [A] 'function char* devm_kvasprintf(device*, gfp_t, const char*, va_list)'
  [A] 'function int devm_mbox_controller_register(device*, mbox_controller*)'
  [A] 'function int devm_snd_dmaengine_pcm_register(device*, const snd_dmaengine_pcm_config*, unsigned int)'
  [A] 'function thermal_zone_device* devm_thermal_zone_of_sensor_register(device*, int, void*, const thermal_zone_of_device_ops*)'
  [A] 'function usb_phy* devm_usb_get_phy(device*, usb_phy_type)'
  [A] 'function usb_phy* devm_usb_get_phy_by_phandle(device*, const char*, u8)'
  [A] 'function void dma_direct_sync_sg_for_cpu(device*, scatterlist*, int, dma_data_direction)'
  [A] 'function int dma_fence_get_status(dma_fence*)'
  [A] 'function bool dma_fence_remove_callback(dma_fence*, dma_fence_cb*)'
  [A] 'function unsigned long int dma_get_merge_boundary(device*)'
  [A] 'function dma_chan* dma_get_slave_channel(dma_chan*)'
  [A] 'function dma_pool* dmam_pool_create(const char*, device*, size_t, size_t, size_t)'
  [A] 'function int down_trylock(semaphore*)'
  [A] 'function void downgrade_write(rw_semaphore*)'
  [A] 'function drm_crtc_state* drm_atomic_get_crtc_state(drm_atomic_state*, drm_crtc*)'
  [A] 'function void drm_connector_list_iter_begin(drm_device*, drm_connector_list_iter*)'
  [A] 'function void drm_connector_list_iter_end(drm_connector_list_iter*)'
  [A] 'function drm_connector* drm_connector_list_iter_next(drm_connector_list_iter*)'
  [A] 'function void drm_crtc_arm_vblank_event(drm_crtc*, drm_pending_vblank_event*)'
  [A] 'function drm_gem_cma_object* drm_fb_cma_get_gem_obj(drm_framebuffer*, unsigned int)'
  [A] 'function int drm_gem_cma_dumb_create_internal(drm_file*, drm_device*, drm_mode_create_dumb*)'
  [A] 'function void drm_gem_cma_free_object(drm_gem_object*)'
  [A] 'function int drm_gem_cma_mmap(file*, vm_area_struct*)'
  [A] 'function sg_table* drm_gem_cma_prime_get_sg_table(drm_gem_object*)'
  [A] 'function drm_gem_object* drm_gem_cma_prime_import_sg_table(drm_device*, dma_buf_attachment*, sg_table*)'
  [A] 'function int drm_gem_cma_prime_mmap(drm_gem_object*, vm_area_struct*)'
  [A] 'function void* drm_gem_cma_prime_vmap(drm_gem_object*)'
  [A] 'function void drm_gem_cma_prime_vunmap(drm_gem_object*, void*)'
  [A] 'function dma_buf* drm_gem_prime_export(drm_gem_object*, int)'
  [A] 'function void drm_mode_copy(drm_display_mode*, const drm_display_mode*)'
  [A] 'function uint32_t drm_of_find_possible_crtcs(drm_device*, device_node*)'
  [A] 'function void drm_sysfs_hotplug_event(drm_device*)'
  [A] 'function void* dup_iter(iov_iter*, iov_iter*, gfp_t)'
  [A] 'function int fasync_helper(int, file*, int, fasync_struct**)'
  [A] 'function device* get_cpu_device(unsigned int)'
  [A] 'function unsigned int get_next_ino()'
  [A] 'function unsigned int get_random_u32()'
  [A] 'function int get_tree_single(fs_context*, void ()*)'
  [A] 'function long int get_user_pages(unsigned long int, unsigned long int, unsigned int, page**, vm_area_struct**)'
  [A] 'function int get_user_pages_fast(unsigned long int, int, unsigned int, page**)'
  [A] 'function long int get_user_pages_remote(task_struct*, mm_struct*, unsigned long int, unsigned long int, unsigned int, page**, vm_area_struct**, int*)'
  [A] 'function unsigned long int get_zeroed_page(unsigned int)'
  [A] 'function int hci_conn_check_secure(hci_conn*, __u8)'
  [A] 'function int hci_conn_security(hci_conn*, __u8, __u8, bool)'
  [A] 'function int hci_conn_switch_role(hci_conn*, __u8)'
  [A] 'function hci_dev* hci_get_route(bdaddr_t*, bdaddr_t*, uint8_t)'
  [A] 'function int hci_register_cb(hci_cb*)'
  [A] 'function int hci_unregister_cb(hci_cb*)'
  [A] 'function int hdmi_avi_infoframe_init(hdmi_avi_infoframe*)'
  [A] 'function ssize_t hdmi_avi_infoframe_pack(hdmi_avi_infoframe*, void*, size_t)'
  [A] 'function int hex_to_bin(char)'
  [A] 'function int hid_add_device(hid_device*)'
  [A] 'function hid_device* hid_allocate_device()'
  [A] 'function void hid_destroy_device(hid_device*)'
  [A] 'function bool hid_ignore(hid_device*)'
  [A] 'function int hid_input_report(hid_device*, int, unsigned char*, unsigned int, int)'
  [A] 'function int hid_parse_report(hid_device*, unsigned char*, unsigned int)'
  [A] 'function int i2c_for_each_dev(void*, void ()*)'
  [A] 'function int i2c_generic_scl_recovery(i2c_adapter*)'
  [A] 'function i2c_adapter* i2c_get_adapter(int)'
  [A] 'function i2c_client* i2c_new_ancillary_device(i2c_client*, const char*, u16)'
  [A] 'function void i2c_parse_fw_timings(device*, i2c_timings*, bool)'
  [A] 'function void i2c_put_adapter(i2c_adapter*)'
  [A] 'function int i2c_recover_bus(i2c_adapter*)'
  [A] 'function int i2c_smbus_read_word_data(const i2c_client*, unsigned char)'
  [A] 'function int i2c_smbus_xfer(i2c_adapter*, unsigned short int, unsigned short int, char, unsigned char, int, i2c_smbus_data*)'
  [A] 'function int i2c_transfer_buffer_flags(const i2c_client*, char*, int, unsigned short int)'
  [A] 'function void i2c_unregister_device(i2c_client*)'
  [A] 'function i2c_client* i2c_verify_client(device*)'
  [A] 'function ieee80211_hw* ieee80211_alloc_hw_nm(size_t, const ieee80211_ops*, const char*)'
  [A] 'function sk_buff* ieee80211_ap_probereq_get(ieee80211_hw*, ieee80211_vif*)'
  [A] 'function sk_buff* ieee80211_beacon_get_tim(ieee80211_hw*, ieee80211_vif*, u16*, u16*)'
  [A] 'function void ieee80211_chswitch_done(ieee80211_vif*, bool)'
  [A] 'function void ieee80211_connection_loss(ieee80211_vif*)'
  [A] 'function void ieee80211_cqm_beacon_loss_notify(ieee80211_vif*, gfp_t)'
  [A] 'function void ieee80211_cqm_rssi_notify(ieee80211_vif*, nl80211_cqm_rssi_threshold_event, s32, gfp_t)'
  [A] 'function void ieee80211_csa_finish(ieee80211_vif*)'
  [A] 'function ieee80211_sta* ieee80211_find_sta(ieee80211_vif*, const u8*)'
  [A] 'function void ieee80211_free_hw(ieee80211_hw*)'
  [A] 'function void ieee80211_free_txskb(ieee80211_hw*, sk_buff*)'
  [A] 'function unsigned int ieee80211_get_hdrlen_from_skb(const sk_buff*)'
  [A] 'function unsigned int ieee80211_hdrlen(__le16)'
  [A] 'function void ieee80211_iterate_active_interfaces_atomic(ieee80211_hw*, u32, void ()*, void*)'
  [A] 'function void ieee80211_iterate_interfaces(ieee80211_hw*, u32, void ()*, void*)'
  [A] 'function sk_buff* ieee80211_nullfunc_get(ieee80211_hw*, ieee80211_vif*, bool)'
  [A] 'function sk_buff* ieee80211_probereq_get(ieee80211_hw*, const u8*, const u8*, size_t, size_t)'
  [A] 'function sk_buff* ieee80211_proberesp_get(ieee80211_hw*, ieee80211_vif*)'
  [A] 'function sk_buff* ieee80211_pspoll_get(ieee80211_hw*, ieee80211_vif*)'
  [A] 'function void ieee80211_queue_delayed_work(ieee80211_hw*, delayed_work*, unsigned long int)'
  [A] 'function void ieee80211_queue_work(ieee80211_hw*, work_struct*)'
  [A] 'function void ieee80211_radar_detected(ieee80211_hw*)'
  [A] 'function void ieee80211_ready_on_channel(ieee80211_hw*)'
  [A] 'function int ieee80211_register_hw(ieee80211_hw*)'
  [A] 'function void ieee80211_remain_on_channel_expired(ieee80211_hw*)'
  [A] 'function void ieee80211_report_low_ack(ieee80211_sta*, u32)'
  [A] 'function void ieee80211_restart_hw(ieee80211_hw*)'
  [A] 'function void ieee80211_rx_napi(ieee80211_hw*, ieee80211_sta*, sk_buff*, napi_struct*)'
  [A] 'function void ieee80211_scan_completed(ieee80211_hw*, cfg80211_scan_info*)'
  [A] 'function void ieee80211_sched_scan_results(ieee80211_hw*)'
  [A] 'function void ieee80211_sched_scan_stopped(ieee80211_hw*)'
  [A] 'function int ieee80211_sta_ps_transition(ieee80211_sta*, bool)'
  [A] 'function void ieee80211_stop_queue(ieee80211_hw*, int)'
  [A] 'function void ieee80211_stop_queues(ieee80211_hw*)'
  [A] 'function void ieee80211_stop_rx_ba_session(ieee80211_vif*, u16, const u8*)'
  [A] 'function void ieee80211_tx_status(ieee80211_hw*, sk_buff*)'
  [A] 'function void ieee80211_unregister_hw(ieee80211_hw*)'
  [A] 'function void ieee80211_wake_queue(ieee80211_hw*, int)'
  [A] 'function void ieee80211_wake_queues(ieee80211_hw*)'
  [A] 'function int init_srcu_struct(srcu_struct*)'
  [A] 'function void ion_buffer_prep_noncached(ion_buffer*)'
  [A] 'function void ion_device_remove_heap(ion_heap*)'
  [A] 'function void iov_iter_bvec(iov_iter*, unsigned int, const bio_vec*, unsigned long int, unsigned long int)'
  [A] 'function int kernel_accept(socket*, socket**, int)'
  [A] 'function int kernel_bind(socket*, sockaddr*, int)'
  [A] 'function int kernel_connect(socket*, sockaddr*, int, int)'
  [A] 'function int kernel_listen(socket*, int)'
  [A] 'function int kernel_sendmsg(socket*, msghdr*, kvec*, size_t, size_t)'
  [A] 'function void kill_fasync(fasync_struct**, int, int)'
  [A] 'function void kill_litter_super(super_block*)'
  [A] 'function void kiocb_set_cancel_fn(kiocb*, kiocb_cancel_fn*)'
  [A] 'function int kobject_set_name(kobject*, const char*, ...)'
  [A] 'function char* kstrndup(const char*, unsigned long int, unsigned int)'
  [A] 'function int kstrtou16(const char*, unsigned int, unsigned short int*)'
  [A] 'function ktime_t ktime_add_safe(const ktime_t, const ktime_t)'
  [A] 'function l2cap_conn* l2cap_conn_get(l2cap_conn*)'
  [A] 'function void l2cap_conn_put(l2cap_conn*)'
  [A] 'function bool l2cap_is_socket(socket*)'
  [A] 'function int l2cap_register_user(l2cap_conn*, l2cap_user*)'
  [A] 'function void l2cap_unregister_user(l2cap_conn*, l2cap_user*)'
  [A] 'function void list_sort(void*, list_head*, void ()*)'
  [A] 'function void* memchr_inv(void*, int, size_t)'
  [A] 'function mempool_s* mempool_create_node(int, void ()*, void ()*, void*, unsigned int, int)'
  [A] 'function void mempool_kfree(void*, void*)'
  [A] 'function void* mempool_kmalloc(gfp_t, void*)'
  [A] 'function void* memscan(void*, int, size_t)'
  [A] 'function void mfd_remove_devices(device*)'
  [A] 'function void mm_trace_rss_stat(mm_struct*, int, long int, long int)'
  [A] 'function int mmc_add_host(mmc_host*)'
  [A] 'function mmc_host* mmc_alloc_host(int, device*)'
  [A] 'function int mmc_app_cmd(mmc_host*, mmc_card*)'
  [A] 'function unsigned int mmc_calc_max_discard(mmc_card*)'
  [A] 'function int mmc_can_erase(mmc_card*)'
  [A] 'function bool mmc_can_gpio_cd(mmc_host*)'
  [A] 'function int mmc_can_sanitize(mmc_card*)'
  [A] 'function int mmc_can_secure_erase_trim(mmc_card*)'
  [A] 'function int mmc_can_trim(mmc_card*)'
  [A] 'function int mmc_cmdq_disable(mmc_card*)'
  [A] 'function int mmc_cmdq_enable(mmc_card*)'
  [A] 'function void mmc_cqe_post_req(mmc_host*, mmc_request*)'
  [A] 'function int mmc_cqe_recovery(mmc_host*)'
  [A] 'function int mmc_cqe_start_req(mmc_host*, mmc_request*)'
  [A] 'function int mmc_detect_card_removed(mmc_host*)'
  [A] 'function int mmc_erase(mmc_card*, unsigned int, unsigned int, unsigned int)'
  [A] 'function int mmc_erase_group_aligned(mmc_card*, unsigned int, unsigned int)'
  [A] 'function int mmc_flush_cache(mmc_card*)'
  [A] 'function void mmc_get_card(mmc_card*, mmc_ctx*)'
  [A] 'function int mmc_get_ext_csd(mmc_card*, unsigned char**)'
  [A] 'function int mmc_gpio_get_cd(mmc_host*)'
  [A] 'function int mmc_gpio_get_ro(mmc_host*)'
  [A] 'function int mmc_gpiod_request_cd(mmc_host*, const char*, unsigned int, bool, unsigned int, bool*)'
  [A] 'function void mmc_gpiod_request_cd_irq(mmc_host*)'
  [A] 'function int mmc_gpiod_request_ro(mmc_host*, const char*, unsigned int, unsigned int, bool*)'
  [A] 'function int mmc_hw_reset(mmc_host*)'
  [A] 'function int mmc_of_parse_voltage(device_node*, u32*)'
  [A] 'function void mmc_put_card(mmc_card*, mmc_ctx*)'
  [A] 'function int mmc_register_driver(mmc_driver*)'
  [A] 'function int mmc_regulator_get_supply(mmc_host*)'
  [A] 'function int mmc_regulator_set_ocr(mmc_host*, regulator*, unsigned short int)'
  [A] 'function void mmc_release_host(mmc_host*)'
  [A] 'function void mmc_request_done(mmc_host*, mmc_request*)'
  [A] 'function void mmc_retune_pause(mmc_host*)'
  [A] 'function void mmc_retune_release(mmc_host*)'
  [A] 'function void mmc_retune_unpause(mmc_host*)'
  [A] 'function void mmc_run_bkops(mmc_card*)'
  [A] 'function int mmc_send_status(mmc_card*, unsigned int*)'
  [A] 'function int mmc_start_request(mmc_host*, mmc_request*)'
  [A] 'function int mmc_switch(mmc_card*, unsigned char, unsigned char, unsigned char, unsigned int)'
  [A] 'function void mmc_unregister_driver(mmc_driver*)'
  [A] 'function int mmc_wait_for_cmd(mmc_host*, mmc_command*, int)'
  [A] 'function unsigned long int msleep_interruptible(unsigned int)'
  [A] 'function int netlink_broadcast(sock*, sk_buff*, unsigned int, unsigned int, unsigned int)'
  [A] 'function int netlink_has_listeners(sock*, unsigned int)'
  [A] 'function void netlink_kernel_release(sock*)'
  [A] 'function inode* new_inode(super_block*)'
  [A] 'function bool of_device_is_big_endian(const device_node*)'
  [A] 'function int of_property_read_u64(const device_node*, const char*, long long unsigned int*)'
  [A] 'function int of_thermal_get_ntrips(thermal_zone_device*)'
  [A] 'function const thermal_trip* of_thermal_get_trip_points(thermal_zone_device*)'
  [A] 'function int param_get_int(char*, const kernel_param*)'
  [A] 'function int param_set_int(const char*, const kernel_param*)'
  [A] 'function bool pci_device_is_present(pci_dev*)'
  [A] 'function int pci_enable_device_mem(pci_dev*)'
  [A] 'function void pci_free_irq(pci_dev*, unsigned int, void*)'
  [A] 'function int pci_load_saved_state(pci_dev*, pci_saved_state*)'
  [A] 'function int pci_request_irq(pci_dev*, unsigned int, irq_handler_t, irq_handler_t, void*, const char*, ...)'
  [A] 'function int pci_select_bars(pci_dev*, unsigned long int)'
  [A] 'function bool pcie_aspm_enabled(pci_dev*)'
  [A] 'function void percpu_ref_exit(percpu_ref*)'
  [A] 'function int percpu_ref_init(percpu_ref*, void ()*, unsigned int, unsigned int)'
  [A] 'function void percpu_ref_kill_and_confirm(percpu_ref*, void ()*)'
  [A] 'function int pinctrl_pm_select_idle_state(device*)'
  [A] 'function void pinctrl_put(pinctrl*)'
  [A] 'function bool policy_has_boost_freq(cpufreq_policy*)'
  [A] 'function proc_dir_entry* proc_create_single_data(const char*, unsigned short int, proc_dir_entry*, void ()*, void*)'
  [A] 'function void** radix_tree_next_chunk(const xarray*, radix_tree_iter*, unsigned int)'
  [A] 'function void rb_erase(rb_node*, rb_root*)'
  [A] 'function rb_node* rb_first(const rb_root*)'
  [A] 'function void rb_insert_color(rb_node*, rb_root*)'
  [A] 'function rb_node* rb_next(const rb_node*)'
  [A] 'function rb_node* rb_prev(const rb_node*)'
  [A] 'function void rb_replace_node(rb_node*, rb_node*, rb_root*)'
  [A] 'function void regcache_mark_dirty(regmap*)'
  [A] 'function int regcache_sync(regmap*)'
  [A] 'fution int register_chrdev_region(dev_t, unsigned int, const char*)'
  [A] 'function int regmap_add_irq_chip(regmap*, int, int, int, const regmap_irq_chip*, regmap_irq_chip_data**)'
  [A] 'function void regmap_del_irq_chip(int, regmap_irq_chip_data*)'
  [A] 'function int regmap_raw_read(regmap*, unsigned int, void*, size_t)'
  [A] 'function int regmap_raw_write(regmap*, unsigned int, void*, size_t)'
  [A] 'function int regmap_register_patch(regmap*, const reg_sequence*, int)'
  [A] 'function regulator* regulator_get_optional(device*, const char*)'
  [A] 'function int regulator_list_voltage_table(regulator_dev*, unsigned int)'
  [A] 'function int regulator_map_voltage_ascend(regulator_dev*, int, int)'
  [A] 'function int remap_vmalloc_range(vm_area_struct*, void*, unsigned long int)'
  [A] 'function rfkill_type rfkill_find_type(const char*)'
  [A] 'function int rtc_year_days(unsigned int, unsigned int, unsigned int)'
  [A] 'function int sdio_claim_irq(sdio_func*, sdio_irq_handler_t*)'
  [A] 'function int sdio_disable_func(sdio_func*)'
  [A] 'function unsigned char sdio_f0_readb(sdio_func*, unsigned int, int*)'
  [A] 'function void sdio_f0_writeb(sdio_func*, unsigned char, unsigned int, int*)'
  [A] 'function mmc_pm_flag_t sdio_get_host_pm_caps(sdio_func*)'
  [A] 'function int sdio_release_irq(sdio_func*)'
  [A] 'function int sdio_set_host_pm_flags(sdio_func*, mmc_pm_flag_t)'
  [A] 'function void sdio_signal_irq(mmc_host*)'
  [A] 'function void security_sk_clone(const sock*, sock*)'
  [A] 'function int serdev_device_get_tiocm(serdev_device*)'
  [A] 'function void serial8250_clear_and_reinit_fifos(uart_8250_port*)'
  [A] 'function void serial8250_do_pm(uart_port*, unsigned int, unsigned int)'
  [A] 'function void serial8250_do_set_ldisc(uart_port*, ktermios*)'
  [A] 'function void serial8250_do_set_termios(uart_port*, ktermios*, ktermios*)'
  [A] 'function int serial8250_handle_irq(uart_port*, unsigned int)'
  [A] 'function int serial8250_register_8250_port(uart_8250_port*)'
  [A] 'function void serial8250_resume_port(int)'
  [A] 'function void serial8250_suspend_port(int)'
  [A] 'function void serial8250_unregister_port(int)'
  [A] 'function irqreturn serio_interrupt(serio*, unsigned char, unsigned int)'
  [A] 'function void serio_reconnect(serio*)'
  [A] 'function void serio_unregister_port(serio*)'
  [A] 'function int set_page_dirty_lock(page*)'
  [A] 'function int sg_alloc_table(sg_table*, unsigned int, unsigned int)'
  [A] 'function size_t sg_zero_buffer(scatterlist*, unsigned int, size_t, off_t)'
  [A] 'function scatterlist* sgl_alloc(long long unsigned int, unsigned int, unsigned int*)'
  [A] 'function void sgl_free(scatterlist*)'
  [A] 'function int simple_statfs(dentry*, kstatfs*)'
  [A] 'function void skb_queue_head(sk_buff_head*, sk_buff*)'
  [A] 'function int snd_dmaengine_pcm_prepare_slave_config(snd_pcm_substream*, snd_pcm_hw_params*, dma_slave_config*)'
  [A] 'function int snd_soc_dai_set_sysclk(snd_soc_dai*, int, unsigned int, int)'
  [A] 'function int snd_soc_dai_set_tdm_slot(snd_soc_dai*, unsigned int, unsigned int, int, int)'
  [A] 'function int snd_soc_dapm_get_pin_switch(snd_kcontrol*, snd_ctl_elem_value*)'
  [A] 'function int snd_soc_dapm_info_pin_switch(snd_kcontrol*, snd_ctl_elem_info*)'
  [A] 'function int snd_soc_dapm_put_pin_switch(snd_kcontrol*, snd_ctl_elem_value*)'
  [A] 'function int snd_soc_jack_add_gpios(snd_soc_jack*, int, snd_soc_jack_gpio*)'
  [A] 'function void snd_soc_of_parse_node_prefix(device_node*, snd_soc_codec_conf*, device_node*, const char*)'
  [A] 'function int sock_create_kern(net*, int, int, int, socket**)'
  [A] 'function int sock_no_bind(socket*, sockaddr*, int)'
  [A] 'function int sock_no_connect(socket*, sockaddr*, int, int)'
  [A] 'function int sock_no_getname(socket*, sockaddr*, int)'
  [A] 'function int sock_no_recvmsg(socket*, msghdr*, size_t, int)'
  [A] 'function int sock_no_sendmsg(socket*, msghdr*, size_t)'
  [A] 'function void sock_release(socket*)'
  [A] 'function socket* sockfd_lookup(int, int*)'
  [A] 'function int spi_bus_lock(spi_controller*)'
  [A] 'functionnt spi_bus_unlock(spi_controller*)'
  [A] 'function int spi_controller_resume(spi_controller*)'
  [A] 'function void spi_finalize_current_message(spi_controller*)'
  [A] 'function spi_message* spi_get_next_queued_message(spi_controller*)'
  [A] 'function int spi_setup(spi_device*)'
  [A] 'function int spi_sync_locked(spi_device*, spi_message*)'
  [A] 'function unsigned long int strcspn(const char*, const char*)'
  [A] 'function int stream_open(inode*, file*)'
  [A] 'function char* strpbrk(const char*, const char*)'
  [A] 'function long int strscpy(char*, const char*, unsigned long int)'
  [A] 'function void synchronize_srcu(srcu_struct*)'
  [A] 'function void sysfs_remove_file_from_group(kobject*, const attribute*, const char*)'
  [A] 'function void thermal_zone_device_update(thermal_zone_device*, thermal_notify_event)'
  [A] 'function int thermal_zone_get_temp(thermal_zone_device*, int*)'
  [A] 'function thermal_zone_device* thermal_zone_get_zone_by_name(const char*)'
  [A] 'function void trace_seq_putc(trace_seq*, unsigned char)'
  [A] 'function int tty_port_install(tty_port*, tty_driver*, tty_struct*)'
  [A] 'function void tty_wakeup(tty_struct*)'
  [A] 'function void typec_altmode_attention(typec_altmode*, u32)'
  [A] 'function int typec_altmode_notify(typec_altmode*, unsigned long int, void*)'
  [A] 'function void typec_altmode_update_active(typec_altmode*, bool)'
  [A] 'function int typec_altmode_vdm(typec_altmode*, const u32, const u32*, int)'
  [A] 'function int typec_find_port_data_role(const char*)'
  [A] 'function int typec_find_port_power_role(const char*)'
  [A] 'function int typec_find_power_role(const char*)'
  [A] 'function typec_altmode* typec_match_altmode(typec_altmode**, size_t, u16, u8)'
  [A] 'function typec_altmode* typec_partner_register_altmode(typec_partner*, const typec_altmode_desc*)'
  [A] 'function int typec_partner_set_identity(typec_partner*)'
  [A] 'function typec_altmode* typec_port_register_altmode(typec_port*, const typec_altmode_desc*)'
  [A] 'function typec_partner* typec_register_partner(typec_port*, typec_partner_desc*)'
  [A] 'function typec_port* typec_register_port(device*, const typec_capability*)'
  [A] 'function void typec_set_data_role(typec_port*, typec_data_role)'
  [A] 'function int typec_set_mode(typec_port*, int)'
  [A] 'function int typec_set_orientation(typec_port*, typec_orientation)'
  [A] 'function void typec_set_pwr_opmode(typec_port*, typec_pwr_opmode)'
  [A] 'function void typec_set_pwr_role(typec_port*, typec_role)'
  [A] 'function void typec_set_vconn_role(typec_port*, typec_role)'
  [A] 'function void typec_unregister_altmode(typec_altmode*)'
  [A] 'function void typec_unregister_partner(typec_partner*)'
  [A] 'function void typec_unregister_port(typec_port*)'
  [A] 'function void unuse_mm(mm_struct*)'
  [A] 'function usb_request* usb_ep_alloc_request(usb_ep*, unsigned int)'
  [A] 'function int usb_ep_clear_halt(usb_ep*)'
  [A] 'function int usb_ep_dequeue(usb_ep*, usb_request*)'
  [A] 'function int usb_ep_enable(usb_ep*)'
  [A] 'function void usb_ep_fifo_flush(usb_ep*)'
  [A] 'function int usb_ep_fifo_status(usb_ep*)'
  [A] 'function void usb_ep_free_request(usb_ep*, usb_request*)'
  [A] 'function int usb_ep_queue(usb_ep*, usb_request*, unsigned int)'
  [A] 'function int usb_gadget_probe_driver(usb_gadget_driver*)'
  [A] 'function int usb_gadget_unregister_driver(usb_gadget_driver*)'
  [A] 'function int usb_gadget_vbus_draw(usb_gadget*, unsigned int)'
  [A] 'function char* usb_get_gadget_udc_name()'
  [A] 'function void use_mm(mm_struct*)'
  [A] 'function void uuid_gen(__anonymous_struct__26*)'
  [A] 'function int uuid_parse(const char*, uuid_t*)'
  [A] 'function int vfs_fallocate(file*, int, long long int, long long int)'
  [A] 'function int vfs_fsync(file*, int)'
  [A] 'function unsigned long int vm_mmap(file*, unsigned long int, unsigned long int, unsigned long int, unsigned long int, unsigned long int)'
  [A] 'function void* vmalloc_user(unsigned long int)'
  [A] 'function int vscnprintf(char*, unsigned long int, const char*, __va_list)'
  [A] 'function signed long int wait_for_completion_io_timeout(completion*, unsigned long int)'
  [A] 'function ieee80211_hw* wiphy_to_ieee80211_hw(wiphy*)'

Bug: 146450171
Change-Id: I189626865424855bf91f754f6689e1e1da1ef52f
Signed-off-by: John Stultz <john.stultz@linaro.org>
2020-03-23 23:39:45 +00:00
Sandeep Patil
4d8b83112a ANDROID: ABI: Update abi after enabling CONFIG_USB_PHY
Bug: 151969174
Test: Builds

Signed-off-by: Sandeep Patil <sspatil@google.com>
Change-Id: I85615b4e1c250ec6397917a484fc7710660597c2
2020-03-20 06:54:01 -07:00
Greg Kroah-Hartman
4798d736c0 ANDROID: GKI: USB: add Android ABI padding to some structures
To try to mitigate potential future USB api changes, add some padding to
the following structures:
	struct usb_interface
	struct usb_host_bos
	struct usb_bus
	struct usb_device
	struct usb_driver
	struct urb
	struct usb_hcd
	struct hc_driver
	struct usb_tt
	struct usbnet
	struct driver_info (for usbnet driver)

Based on a patch from Oliver Neukum <oneukum@suse.de> from the SLES
kernel.

Leaf changes summary: 10 artifacts changed
Changed leaf types summary: 10 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct driver_info at usbnet.h:94:1' changed:
  type size changed from 1152 to 1280 (in bits)
  2 data member insertions:
    'u64 driver_info::android_kabi_reserved1', at offset 1152 (in bits) at usbnet.h:183:1
    'u64 driver_info::android_kabi_reserved2', at offset 1216 (in bits) at usbnet.h:184:1
  10 impacted interfaces:

'struct hc_driver at hcd.h:249:1' changed:
  type size changed from 2880 to 3136 (in bits)
  4 data member insertions:
    'u64 hc_driver::android_kabi_reserved1', at offset 2880 (in bits) at hcd.h:419:1
    'u64 hc_driver::android_kabi_reserved2', at offset 2944 (in bits) at hcd.h:420:1
    'u64 hc_driver::android_kabi_reserved3', at offset 3008 (in bits) at hcd.h:421:1
    'u64 hc_driver::android_kabi_reserved4', at offset 3072 (in bits) at hcd.h:422:1
  16 impacted interfaces:

'struct urb at usb.h:1550:1' changed:
  type size changed from 1472 to 1728 (in bits)
  4 data member insertions:
    'u64 urb::android_kabi_reserved1', at offset 1472 (in bits) at usb.h:1613:1
    'u64 urb::android_kabi_reserved2', at offset 1536 (in bits) at usb.h:1614:1
    'u64 urb::android_kabi_reserved3', at offset 1600 (in bits) at usb.h:1615:1
    'u64 urb::android_kabi_reserved4', at offset 1664 (in bits) at usb.h:1616:1
  39 impacted interfaces:

'struct usb_bus at usb.h:424:1' changed:
  type size changed from 1024 to 1280 (in bits)
  4 data member insertions:
    'u64 usb_bus::android_kabi_reserved1', at offset 1024 (in bits) at usb.h:480:1
    'u64 usb_bus::android_kabi_reserved2', at offset 1088 (in bits) at usb.h:481:1
    'u64 usb_bus::android_kabi_reserved3', at offset 1152 (in bits) at usb.h:482:1
    'u64 usb_bus::android_kabi_reserved4', at offset 1216 (in bits) at usb.h:483:1
  54 impacted interfaces:

'struct usb_device at usb.h:631:1' changed:
  type size changed from 11712 to 11968 (in bits)
  4 data member insertions:
    'u64 usb_device::android_kabi_reserved1', at offset 11712 (in bits) at usb.h:728:1
    'u64 usb_device::android_kabi_reserved2', at offset 11776 (in bits) at usb.h:729:1
    'u64 usb_device::android_kabi_reserved3', at offset 11840 (in bits) at usb.h:730:1
    'u64 usb_device::android_kabi_reserved4', at offset 11904 (in bits) at usb.h:731:1
  54 impacted interfaces:

'struct usb_driver at usb.h:1183:1' changed:
  type size changed from 2432 to 2688 (in bits)
  4 data member insertions:
    'u64 usb_driver::android_kabi_reserved1', at offset 2432 (in bits) at usb.h:1232:1
    'u64 usb_driver::android_kabi_reserved2', at offset 2496 (in bits) at usb.h:1233:1
    'u64 usb_driver::android_kabi_reserved3', at offset 2560 (in bits) at usb.h🔢1
    'u64 usb_driver::android_kabi_reserved4', at offset 2624 (in bits) at usb.h:1235:1
  4 impacted interfaces:

'struct usb_hcd at hcd.h:81:1' changed:
  type size changed from 4736 to 5248 (in bits)
  4 data member insertions:
    'u64 usb_hcd::android_kabi_reserved1', at offset 4992 (in bits) at hcd.h:229:1
    'u64 usb_hcd::android_kabi_reserved2', at offset 5056 (in bits) at hcd.h:230:1
    'u64 usb_hcd::android_kabi_reserved3', at offset 5120 (in bits) at hcd.h:231:1
    'u64 usb_hcd::android_kabi_reserved4', at offset 5184 (in bits) at hcd.h:232:1
  16 impacted interfaces:

'struct usb_host_bos at usb.h:396:1' changed:
  type size changed from 384 to 640 (in bits)
  4 data member insertions:
    'u64 usb_host_bos::android_kabi_reserved1', at offset 384 (in bits) at usb.h:412:1
    'u64 usb_host_bos::android_kabi_reserved2', at offset 448 (in bits) at usb.h:413:1
    'u64 usb_host_bos::android_kabi_reserved3', at offset 512 (in bits) at usb.h:414:1
    'u64 usb_host_bos::android_kabi_reserved4', at offset 576 (in bits) at usb.h:415:1
  54 impacted interfaces:

'struct usb_interface at usb.h:232:1' changed:
  type size changed from 7360 to 7616 (in bits)
  4 data member insertions:
    'u64 usb_interface::android_kabi_reserved1', at offset 7360 (in bits) at usb.h:262:1
    'u64 usb_interface::android_kabi_reserved2', at offset 7424 (in bits) at usb.h:263:1
    'u64 usb_interface::android_kabi_reserved3', at offset 7488 (in bits) at usb.h:264:1
    'u64 usb_interface::android_kabi_reserved4', at offset 7552 (in bits) at usb.h:265:1
  73 impacted interfaces:

'struct usbnet at usbnet.h:27:1' changed:
  type size changed from 4736 to 4992 (in bits)
  4 data member insertions:
    'u64 usbnet::android_kabi_reserved1', at offset 4736 (in bits) at usbnet.h:89:1
    'u64 usbnet::android_kabi_reserved2', at offset 4800 (in bits) at usbnet.h:90:1
    'u64 usbnet::android_kabi_reserved3', at offset 4864 (in bits) at usbnet.h:91:1
    'u64 usbnet::android_kabi_reserved4', at offset 4928 (in bits) at usbnet.h:92:1
  10 impacted interfaces:

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ie9e246d9333ac70fc9cc2b0bf7cb466a8ffdb6de
2020-03-20 09:27:54 +01:00
Greg Kroah-Hartman
1191305043 ANDROID: GKI: mm: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
padding to stuct vm_area_struct and struct zone.

Based on a patch from Michal Marek <mmarek@suse.cz> from the SLES kernel

Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 3 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct vm_area_struct at mm_types.h:292:1' changed:
  type size changed from 1472 to 1728 (in bits)
  4 data member insertions:
    'u64 vm_area_struct::android_kabi_reserved1', at offset 1472 (in bits) at mm_types.h:365:1
    'u64 vm_area_struct::android_kabi_reserved2', at offset 1536 (in bits) at mm_types.h:366:1
    'u64 vm_area_struct::android_kabi_reserved3', at offset 1600 (in bits) at mm_types.h:367:1
    'u64 vm_area_struct::android_kabi_reserved4', at offset 1664 (in bits) at mm_types.h:368:1
  1435 impacted interfaces:

'struct zone at mmzone.h:420:1' changed:
  type size changed from 12800 to 13312 (in bits)
  4 data member insertions:
    'u64 zone::android_kabi_reserved1', at offset 12672 (in bits) at mmzone.h:569:1
    'u64 zone::android_kabi_reserved2', at offset 12736 (in bits) at mmzone.h:570:1
    'u64 zone::android_kabi_reserved3', at offset 12800 (in bits) at mmzone.h:571:1
    'u64 zone::android_kabi_reserved4', at offset 12864 (in bits) at mmzone.h:572:1
  624 impacted interfaces:

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I81702aa833f419928e0e32e9609722b98592c171
2020-03-19 15:01:25 +01:00
Greg Kroah-Hartman
2e1ae17be8 ANDROID: GKI: mount.h: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
padding to struct vfsmount.

Based on a patch from Michal Marek <mmarek@suse.cz> from the SLES kernel

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct vfsmount at mount.h:68:1' changed:
  type size changed from 256 to 512 (in bits)
  4 data member insertions:
    'u64 vfsmount::android_kabi_reserved1', at offset 192 (in bits) at mount.h:73:1
    'u64 vfsmount::android_kabi_reserved2', at offset 256 (in bits) at mount.h:74:1
    'u64 vfsmount::android_kabi_reserved3', at offset 320 (in bits) at mount.h:75:1
    'u64 vfsmount::android_kabi_reserved4', at offset 384 (in bits) at mount.h:76:1
  there are data member changes:
    'void* vfsmount::data' offset changed from 192 to 448 (in bits) (by +256 bits)
  8 impacted interfaces:
    function vfsmount* mntget(vfsmount*)
    function int notify_change2(vfsmount*, dentry*, iattr*, inode**)
    function int vfs_create2(vfsmount*, inode*, dentry*, umode_t, bool)
    function int vfs_mkdir2(vfsmount*, inode*, dentry*, umode_t)
    function int vfs_path_lookup(dentry*, vfsmount*, const char*, unsigned int, path*)
    function int vfs_rename2(vfsmount*, inode*, dentry*, inode*, dentry*, inode**, unsigned int)
    function int vfs_rmdir2(vfsmount*, inode*, dentry*)
    function int vfs_unlink2(vfsmount*, inode*, dentry*, inode**)

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I9ce1b63f05c90af168eeea1312ac88d3cc5cfdf3
2020-03-19 14:31:21 +01:00
Greg Kroah-Hartman
b34f70f7bf ANDROID: GKI: sched.h: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
pointer to struct signal_struct, struct sched_entity, struct
sched_rt_entity, and struct task_struct.

Based on a patch from Michal Marek <mmarek@suse.cz> from the SLES kernel

Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 3 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct sched_entity at sched.h:444:1' changed:
  type size changed from 3584 to 4096 (in bits)
  4 data member insertions:
    'u64 sched_entity::android_kabi_reserved1', at offset 3584 (in bits) at sched.h:481:1
    'u64 sched_entity::android_kabi_reserved2', at offset 3648 (in bits) at sched.h:482:1
    'u64 sched_entity::android_kabi_reserved3', at offset 3712 (in bits) at sched.h:483:1
    'u64 sched_entity::android_kabi_reserved4', at offset 3776 (in bits) at sched.h:484:1
  1435 impacted interfaces:

'struct sched_rt_entity at sched.h:481:1' changed:
  type size changed from 384 to 640 (in bits)
  4 data member insertions:
    'u64 sched_rt_entity::android_kabi_reserved1', at offset 384 (in bits) at sched.h:504:1
    'u64 sched_rt_entity::android_kabi_reserved2', at offset 448 (in bits) at sched.h:505:1
    'u64 sched_rt_entity::android_kabi_reserved3', at offset 512 (in bits) at sched.h:506:1
    'u64 sched_rt_entity::android_kabi_reserved4', at offset 576 (in bits) at sched.h:507:1
  1435 impacted interfaces:

'struct task_struct at sched.h:624:1' changed:
  type size changed from 28672 to 30208 (in bits)
  8 data member insertions:
    'u64 task_struct::android_kabi_reserved1', at offset 20992 (in bits) at sched.h:1294:1
    'u64 task_struct::android_kabi_reserved2', at offset 21056 (in bits) at sched.h:1295:1
    'u64 task_struct::android_kabi_reserved3', at offset 21120 (in bits) at sched.h:1296:1
    'u64 task_struct::android_kabi_reserved4', at offset 21184 (in bits) at sched.h:1297:1
    'u64 task_struct::android_kabi_reserved5', at offset 21248 (in bits) at sched.h:1298:1
    'u64 task_struct::android_kabi_reserved6', at offset 21312 (in bits) at sched.h:1299:1
    'u64 task_struct::android_kabi_reserved7', at offset 21376 (in bits) at sched.h:1300:1
    'u64 task_struct::android_kabi_reserved8', at offset 21440 (in bits) at sched.h:1301:1
  there are data member changes:
  1435 impacted interfaces:

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1449735b836399e9b356608727092334daf5c36b
2020-03-19 13:50:19 +01:00
Greg Kroah-Hartman
e0b884a0f5 ANDROID: GKI: sock.h: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
padding to struct sock.

Based on a patch from Michal Marek <mmarek@suse.cz> from the SLES kernel

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct sock at sock.h:324:1' changed:
  type size changed from 6016 to 6528 (in bits)
  8 data member insertions:
    'u64 sock::android_kabi_reserved1', at offset 6016 (in bits) at sock.h:516:1
    'u64 sock::android_kabi_reserved2', at offset 6080 (in bits) at sock.h:517:1
    'u64 sock::android_kabi_reserved3', at offset 6144 (in bits) at sock.h:518:1
    'u64 sock::android_kabi_reserved4', at offset 6208 (in bits) at sock.h:519:1
    'u64 sock::android_kabi_reserved5', at offset 6272 (in bits) at sock.h:520:1
    'u64 sock::android_kabi_reserved6', at offset 6336 (in bits) at sock.h:521:1
    'u64 sock::android_kabi_reserved7', at offset 6400 (in bits) at sock.h:522:1
    'u64 sock::android_kabi_reserved8', at offset 6464 (in bits) at sock.h:523:1

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I61c3d6cf12c087345db71fc6d93ee6bd58969003
2020-03-19 11:56:25 +01:00
Greg Kroah-Hartman
fe54c238b3 ANDROID: GKI: module.h: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
padding to struct module.

Based on a patch from Michal Marek <mmarek@suse.cz> from the SLES kernel

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct module at module.h:348:1' changed:
  type size hasn't changed
  4 data member insertions:
    'u64 module::android_kabi_reserved1', at offset 6720 (in bits) at module.h:518:1
    'u64 module::android_kabi_reserved2', at offset 6784 (in bits) at module.h:519:1
    'u64 module::android_kabi_reserved3', at offset 6848 (in bits) at module.h:520:1
    'u64 module::android_kabi_reserved4', at offset 6912 (in bits) at module.h:521:1

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I2a764e9eac88f20e50d192112235da6d2f0f83bc
2020-03-19 10:25:23 +00:00
Greg Kroah-Hartman
0d094683fc ANDROID: GKI: device.h: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by padding to
struct bus_type, struct device_driver, struct class, and struct device.

Based on a patch from Michal Marek <mmarek@suse.cz> from the SLES kernel

Leaf changes summary: 70 artifacts changed
Changed leaf types summary: 70 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

[majority snipped, as there are a lot of child-structure changes, here
 are the real things changed]

'struct bus_type at device.h:122:1' changed:
  type size changed from 1408 to 1664 (in bits)
  4 data member insertions:
    'u64 bus_type::android_kabi_reserved1', at offset 1408 (in bits) at device.h:157:1
    'u64 bus_type::android_kabi_reserved2', at offset 1472 (in bits) at device.h:158:1
    'u64 bus_type::android_kabi_reserved3', at offset 1536 (in bits) at device.h:159:1
    'u64 bus_type::android_kabi_reserved4', at offset 1600 (in bits) at device.h:160:1

  1410 impacted interfaces:

'struct class at device.h:589:1' changed:
  type size changed from 960 to 1216 (in bits)
  4 data member insertions:
    'u64 class::android_kabi_reserved1', at offset 960 (in bits) at device.h:625:1
    'u64 class::android_kabi_reserved2', at offset 1024 (in bits) at device.h:626:1
    'u64 class::android_kabi_reserved3', at offset 1088 (in bits) at device.h:627:1
    'u64 class::android_kabi_reserved4', at offset 1152 (in bits) at device.h:628:1

  1410 impacted interfaces:

'struct device at device.h:1257:1' changed:
  type size changed from 6144 to 6656 (in bits)
  8 data member insertions:
    'u64 device::android_kabi_reserved1', at offset 6144 (in bits) at device.h:1364:1
    'u64 device::android_kabi_reserved2', at offset 6208 (in bits) at device.h:1365:1
    'u64 device::android_kabi_reserved3', at offset 6272 (in bits) at device.h:1366:1
    'u64 device::android_kabi_reserved4', at offset 6336 (in bits) at device.h:1367:1
    'u64 device::android_kabi_reserved5', at offset 6400 (in bits) at device.h:1368:1
    'u64 device::android_kabi_reserved6', at offset 6464 (in bits) at device.h:1369:1
    'u64 device::android_kabi_reserved7', at offset 6528 (in bits) at device.h:1370:1
    'u64 device::android_kabi_reserved8', at offset 6592 (in bits) at device.h:1371:1

  1410 impacted interfaces:

'struct device_driver at device.h:383:1' changed:
  type size changed from 1152 to 1408 (in bits)
  4 data member insertions:
    'u64 device_driver::android_kabi_reserved1', at offset 1152 (in bits) at device.h:416:1
    'u64 device_driver::android_kabi_reserved2', at offset 1216 (in bits) at device.h:417:1
    'u64 device_driver::android_kabi_reserved3', at offset 1280 (in bits) at device.h:418:1
    'u64 device_driver::android_kabi_reserved4', at offset 1344 (in bits) at device.h:419:1

  1410 impacted interfaces:

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I6892cde6481ba775789f0c02239dcfde3a26b56e
2020-03-18 13:55:57 +01:00
Greg Kroah-Hartman
26553937fc ANDROID: GKI: phy: add Android ABI padding to some structures
Try to mitigate potential future driver core api changes by adding a
padding to stuct phy_device and struct phy_driver

Inspired by the upstream changes in 5.4.26 and 4.19.111

This includes the ABI update for the change as well:

Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 2 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct phy_device at phy.h:360:1' changed:
  type size changed from 9472 to 9728 (in bits)
  4 data member insertions:
    'u64 phy_device::android_kabi_reserved1', at offset 9472 (in bits) at phy.h:447:1
    'u64 phy_device::android_kabi_reserved2', at offset 9536 (in bits) at phy.h:448:1
    'u64 phy_device::android_kabi_reserved3', at offset 9600 (in bits) at phy.h:449:1
    'u64 phy_device::android_kabi_reserved4', at offset 9664 (in bits) at phy.h:450:1

  7 impacted interfaces:
    function int genphy_resume(phy_device*)
    function phy_device* phy_connect(net_device*, const char*, void ()*, phy_interface_t)
    function void phy_disconnect(phy_device*)
    function int phy_mii_ioctl(phy_device*, ifreq*, int)
    function void phy_print_status(phy_device*)
    function void phy_start(phy_device*)
    function void phy_stop(phy_device*)

Bug: 151154716
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8dbc5f76e9eddfc5741f944168222aedacd0a8bb
2020-03-18 10:51:31 +01:00
Greg Kroah-Hartman
5b0d8a717e ANDROID: ABI update for 5.4.26
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct phy_device at phy.h:359:1' changed:
  type size hasn't changed
  1 data member insertion:
    'unsigned int phy_device::suspended_by_mdio_bus', at offset 25 (in bits) at phy.h:376:1
  there are data member changes:
   'unsigned int phy_device::interrupts' offset changed from 20 to 19 (in bits) (by -1 bits)
   'unsigned int phy_device::autoneg_complete' offset changed from 21 to 20 (in bits) (by -1 bits)
   'unsigned int phy_device::link' offset changed from 22 to 21 (in bits) (by -1 bits)
   'unsigned int phy_device::autoneg' offset changed from 23 to 22 (in bits) (by -1 bits)
   'unsigned int phy_device::loopback_enabled' offset changed from 24 to 23 (in bits) (by -1 bits)
   'unsigned int phy_device::sysfs_links' offset changed from 25 to 24 (in bits) (by -1 bits)

  7 impacted interfaces:
    function int genphy_resume(phy_device*)
    function phy_device* phy_connect(net_device*, const char*, void ()*, phy_interface_t)
    function void phy_disconnect(phy_device*)
    function int phy_mii_ioctl(phy_device*, ifreq*, int)
    function void phy_print_status(phy_device*)
    function void phy_start(phy_device*)
    function void phy_stop(phy_device*)

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I09c1c2031d87178b4c0eb0adffe8bdaecfb6c45a
2020-03-18 08:37:23 +01:00
Greg Kroah-Hartman
a7f12e137a ANDROID: GKI: update abi due to CONFIG_JUMP_LABEL being enabled
Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 3 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct module at module.h:348:1' changed:
  type size changed from 6656 to 7168 (in bits)
  2 data member insertions:
    'jump_entry* module::jump_entries', at offset 5888 (in bits) at module.h:469:1
    'unsigned int module::num_jump_entries', at offset 5952 (in bits) at module.h:470:1
  there are data member changes:
   'unsigned int module::num_trace_bprintk_fmt' offset changed from 5888 to 5984 (in bits) (by +96 bits)
   'const char** module::trace_bprintk_fmt_start' offset changed from 5952 to 6016 (in bits) (by +64 bits)
   'trace_event_call** module::trace_events' offset changed from 6016 to 6080 (in bits) (by +64 bits)
   'unsigned int module::num_trace_events' offset changed from 6080 to 6144 (in bits) (by +64 bits)
   'trace_eval_map** module::trace_evals' offset changed from 6144 to 6208 (in bits) (by +64 bits)
   'unsigned int module::num_trace_evals' offset changed from 6208 to 6272 (in bits) (by +64 bits)
   'list_head module::source_list' offset changed from 6272 to 6336 (in bits) (by +64 bits)
   'list_head module::target_list' offset changed from 6400 to 6464 (in bits) (by +64 bits)
   'void ()* module::exit' offset changed from 6528 to 6592 (in bits) (by +64 bits)
   'atomic_t module::refcnt' offset changed from 6592 to 6656 (in bits) (by +64 bits)

  1380 impacted interfaces:

'struct static_key at jump_label.h:110:1' changed:
  type size changed from 32 to 128 (in bits)
  1 data member insertion:
    'union {unsigned long int type; jump_entry* entries; static_key_mod* next;}', at offset 64 (in bits) at jump_label.h:102:1

  1380 impacted interfaces:

'struct tracepoint at tracepoint-defs.h:30:1' changed:
  type size changed from 320 to 384 (in bits)
  there are data member changes:
   type 'struct static_key' of 'tracepoint::key' changed as reported earlier
   and size changed from 32 to 128 (in bits) (by +96 bits)
   'void ()* tracepoint::regfunc' offset changed from 128 to 192 (in bits) (by +64 bits)
   'void ()* tracepoint::unregfunc' offset changed from 192 to 256 (in bits) (by +64 bits)
   'tracepoint_func* tracepoint::funcs' offset changed from 256 to 320 (in bits) (by +64 bits)

  1380 impacted interfaces:

Bug: 145162121
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I0b023abe07fe3e5bdb0f51797e39a989c643c3b9
2020-03-16 18:41:13 +01:00
Greg Kroah-Hartman
a04649afdb ANDROID: update the abi signatures
Someone modified the DRM settings but forgot to update the ABI...

Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 3 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct drm_connector at drm_connector.h:1090:1' changed:
  type size changed from 14528 to 14208 (in bits)
  16 data member deletions:
    'u8 drm_connector::pt_scan_info', at offset 13440 (in bits) at drm_connector.h:1370:1

    'u8 drm_connector::it_scan_info', at offset 13448 (in bits) at drm_connector.h:1371:1

    'u8 drm_connector::ce_scan_info', at offset 13456 (in bits) at drm_connector.h:1372:1

    'u32 drm_connector::color_enc_fmt', at offset 13472 (in bits) at drm_connector.h:1373:1

    'u32 drm_connector::hdr_eotf', at offset 13504 (in bits) at drm_connector.h:1374:1

    'bool drm_connector::hdr_metadata_type_one', at offset 13536 (in bits) at drm_connector.h:1375:1

    'u32 drm_connector::hdr_max_luminance', at offset 13568 (in bits) at drm_connector.h:1376:1

    'u32 drm_connector::hdr_avg_luminance', at offset 13600 (in bits) at drm_connector.h:1377:1

    'u32 drm_connector::hdr_min_luminance', at offset 13632 (in bits) at drm_connector.h:1378:1

    'bool drm_connector::hdr_supported', at offset 13664 (in bits) at drm_connector.h:1379:1

    'u8 drm_connector::hdr_plus_app_ver', at offset 13672 (in bits) at drm_connector.h:1380:1

    'int drm_connector::max_tmds_char', at offset 13696 (in bits) at drm_connector.h:1392:1

    'bool drm_connector::scdc_present', at offset 13728 (in bits) at drm_connector.h:1393:1

    'bool drm_connector::rr_capable', at offset 13736 (in bits) at drm_connector.h:1394:1

    'bool drm_connector::supports_scramble', at offset 13744 (in bits) at drm_connector.h:1395:1

    'int drm_connector::flags_3d', at offset 13760 (in bits) at drm_connector.h:1396:1

  there are data member changes:
   type 'struct drm_display_info' of 'drm_connector::display_info' changed:
     type size hasn't changed
     there are data member changes:
      type 'struct drm_hdmi_info' of 'drm_display_info::hdmi' changed:
        type size hasn't changed
        1 data member deletion:
          'u16 drm_hdmi_info::colorimetry', at offset 400 (in bits) at drm_connector.h:213:1

        145 impacted interfaces:

     145 impacted interfaces:
   'bool drm_connector::edid_corrupt' offset changed from 13792 to 13440 (in bits) (by -352 bits)
   'u8 drm_connector::real_edid_checksum' offset changed from 13800 to 13448 (in bits) (by -352 bits)
   'dentry* drm_connector::debugfs_entry' offset changed from 13824 to 13504 (in bits) (by -320 bits)
   'drm_connector_state* drm_connector::state' offset changed from 13888 to 13568 (in bits) (by -320 bits)
   'drm_property_blob* drm_connector::tile_blob_ptr' offset changed from 13952 to 13632 (in bits) (by -320 bits)
   'bool drm_connector::has_tile' offset changed from 14016 to 13696 (in bits) (by -320 bits)
   'drm_tile_group* drm_connector::tile_group' offset changed from 14080 to 13760 (in bits) (by -320 bits)
   'bool drm_connector::tile_is_single_monitor' offset changed from 14144 to 13824 (in bits) (by -320 bits)
   'uint8_t drm_connector::num_h_tile' offset changed from 14152 to 13832 (in bits) (by -320 bits)
   'uint8_t drm_connector::num_v_tile' offset changed from 14160 to 13840 (in bits) (by -320 bits)
   'uint8_t drm_connector::tile_h_loc' offset changed from 14168 to 13848 (in bits) (by -320 bits)
   'uint8_t drm_connector::tile_v_loc' offset changed from 14176 to 13856 (in bits) (by -320 bits)
   'uint16_t drm_connector::tile_h_size' offset changed from 14192 to 13872 (in bits) (by -320 bits)
   'uint16_t drm_connector::tile_v_size' offset changed from 14208 to 13888 (in bits) (by -320 bits)
   'llist_node drm_connector::free_node' offset changed from 14272 to 13952 (in bits) (by -320 bits)
   'hdr_sink_metadata drm_connector::hdr_sink_metadata' offset changed from 14336 to 14016 (in bits) (by -320 bits)
   'drm_panel* drm_connector::panel' offset changed from 14464 to 14144 (in bits) (by -320 bits)

  145 impacted interfaces:

'struct drm_display_info at drm_connector.h:369:1' changed:
  details were reported earlier

'struct drm_hdmi_info at drm_connector.h:186:1' changed:
  details were reported earlier

Bug: 139653858
Cc: Abhinav Kumar <abhinavk@codeaurora.org>
Cc: Alistair Delva <adelva@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ia9d74c49921f406400d3dcc45faf550472c44849
2020-03-16 11:56:58 +00:00
Greg Kroah-Hartman
5b21548746 ANDROID: ABI update due to power supply patches being merged
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct power_supply_battery_info at power_supply.h:339:1' changed:
  type size changed from 2880 to 3008 (in bits)
  2 data member insertions:
    'power_supply_resistance_temp_table* power_supply_battery_info::resist_table', at offset 2880 (in bits) at power_supply.h:357:1
    'int power_supply_battery_info::resist_table_size', at offset 2944 (in bits) at power_supply.h:358:1

  3 impacted interfaces:
    function power_supply_battery_ocv_table* power_supply_find_ocv2cap_table(power_supply_battery_info*, int, int*)
    function int power_supply_get_battery_info(power_supply*, power_supply_battery_info*)
    function void power_supply_put_battery_info(power_supply*, power_supply_battery_info*)

Bug: 146864653
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1550ac758ec09ffef51605b722d2de99d2cc030a
2020-03-13 10:43:54 +00:00
Quentin Perret
eb7eaffe06 ANDROID: abi_gki_aarch64_whitelist: update after whitelist changes
Leaf changes summary: 21 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 21 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

21 Added functions:

  [A] 'function int __clk_determine_rate(clk_hw*, clk_rate_request*)'
  [A] 'function const char* __clk_get_name(const clk*)'
  [A] 'function bool __clk_is_enabled(clk*)'
  [A] 'function int __clk_mux_determine_rate_closest(clk_hw*, clk_rate_request*)'
  [A] 'function unsigned long int clk_hw_get_flags(const clk_hw*)'
  [A] 'function const char* clk_hw_get_name(const clk_hw*)'
  [A] 'function clk_hw* clk_hw_get_parent_by_index(const clk_hw*, unsigned int)'
  [A] 'function bool clk_hw_is_prepared(const clk_hw*)'
  [A] 'function unsigned long int clk_hw_round_rate(clk_hw*, unsigned long int)'
  [A] 'function void* devres_alloc_node(void ()*, unsigned long int, unsigned int, int)'
  [A] 'function long int divider_ro_round_rate_parent(clk_hw*, clk_hw*, unsigned long int, unsigned long int*, const clk_div_table*, u8, unsigned long int, unsigned int)'
  [A] 'function int kmem_cache_alloc_bulk(kmem_cache*, unsigned int, unsigned long int, void**)'
  [A] 'function void kmem_cache_free_bulk(kmem_cache*, size_t, void**)'
  [A] 'function int of_genpd_add_provider_onecell(device_node*, genpd_onecell_data*)'
  [A] 'function void of_genpd_del_provider(device_node*)'
  [A] 'function const unsigned int* of_prop_next_u32(property*, const unsigned int*, unsigned int*)'
  [A] 'function void pci_release_region(pci_dev*, int)'
  [A] 'function int pci_request_region(pci_dev*, int, const char*)'
  [A] 'function int platform_get_irq_optional(platform_device*, unsigned int)'
  [A] 'function int pm_genpd_add_subdomain(generic_pm_domain*, generic_pm_domain*)'
  [A] 'function int pm_genpd_remove_subdomain(generic_pm_domain*, generic_pm_domain*)'

Bug: 147894960
Signed-off-by: Quentin Perret <qperret@google.com>
Change-Id: I13dce4c6924e00ec6603f22287de928c2098655f
2020-03-12 14:40:56 +00:00
Greg Kroah-Hartman
353013334b ANDROID: update abi due to interconnect changes
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct icc_path at core.c:50:1' changed:
  type size changed from 64 to 128 (in bits)
  1 data member insertion:
    'const char* icc_path::name', at offset 0 (in bits) at internal.h:37:1
  there are data member changes:
   'size_t icc_path::num_nodes' offset changed from 0 to 64 (in bits) (by +64 bits)
   'icc_req icc_path::reqs[]' offset changed from 64 to 128 (in bits) (by +64 bits)

  3 impacted interfaces:
    function void icc_put(icc_path*)
    function int icc_set_bw(icc_path*, u32, u32)
    function icc_path* of_icc_get(device*, const char*)

Bug: 151255205
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I01a15b1dee23268381aa2b8b067c1687054481fa
2020-03-12 14:52:57 +01:00
Liangcai Fan
783e9a76d7 ANDROID: ABI/Whitelist: update whitelist of unisoc upstream code
Enable config as m of unisoc upstream code.This adds a whitelist for
the symbols used by the unisoc device.

Also update the ABI representation accordingly:

Leaf changes summary: 97 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 97 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variables

Bug: 147075469
Change-Id: I5f9f2b759af08985060a548d79b6aafbf6bcf3c0
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
Signed-off-by: Matthias Maennich <maennich@google.com>
2020-03-11 21:28:46 +01:00
Alistair Delva
3d3b21c034 ANDROID: arm64: update the abi with the new gki_defconfig
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 1 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

1 Removed function:

  [D] 'function void* __devres_alloc_node(dr_release_t, size_t, gfp_t, int, const char*)'

Bug: 147894960
Change-Id: I947e7fe2b9fe1fd809a1901a6af2a1cd42ae5b0e
Signed-off-by: Alistair Delva <adelva@google.com>
2020-03-11 11:56:42 -07:00
Greg Kroah-Hartman
fdc714f780 ANDROID: Update the abi xml file
Seems no one has done this in a while :(

Leaf changes summary: 5 artifacts changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 4 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

4 Removed functions:

  [D] 'function void __this_cpu_preempt_check(const char*)'
  [D] 'function unsigned int debug_smp_processor_id()'
  [D] 'function void preempt_count_add(int)'
  [D] 'function void preempt_count_sub(int)'

'struct task_struct at sched.h:624:1' changed:
  type size changed from 29184 to 28672 (in bits)
  1 data member deletion:
    'unsigned long int task_struct::preempt_disable_ip', at offset 18816 (in bits) at sched.h:1070:1

  there are data member changes:
   'tlbflush_unmap_batch task_struct::tlb_ubc' offset changed from 18880 to 18816 (in bits) (by -64 bits)
   offset changed from 18880 to 18816 (in bits) (by -64 bits)
   'pipe_inode_info* task_struct::splice_pipe' offset changed from 19008 to 18944 (in bits) (by -64 bits)
   'page_frag task_struct::task_frag' offset changed from 19072 to 19008 (in bits) (by -64 bits)
   'int task_struct::nr_dirtied' offset changed from 19200 to 19136 (in bits) (by -64 bits)
   'int task_struct::nr_dirtied_pause' offset changed from 19232 to 19168 (in bits) (by -64 bits)
   'unsigned long int task_struct::dirty_paused_when' offset changed from 19264 to 19200 (in bits) (by -64 bits)
   'u64 task_struct::timer_slack_ns' offset changed from 19328 to 19264 (in bits) (by -64 bits)
   'u64 task_struct::default_timer_slack_ns' offset changed from 19392 to 19328 (in bits) (by -64 bits)
   'unsigned long int task_struct::trace' offset changed from 19456 to 19392 (in bits) (by -64 bits)
   'unsigned long int task_struct::trace_recursion' offset changed from 19520 to 19456 (in bits) (by -64 bits)
   'mem_cgroup* task_struct::memcg_in_oom' offset changed from 19584 to 19520 (in bits) (by -64 bits)
   'gfp_t task_struct::memcg_oom_gfp_mask' offset changed from 19648 to 19584 (in bits) (by -64 bits)
   'int task_struct::memcg_oom_order' offset changed from 19680 to 19616 (in bits) (by -64 bits)
   'unsigned int task_struct::memcg_nr_pages_over_high' offset changed from 19712 to 19648 (in bits) (by -64 bits)
   'mem_cgroup* task_struct::active_memcg' offset changed from 19776 to 19712 (in bits) (by -64 bits)
   'request_queue* task_struct::throttle_queue' offset changed from 19840 to 19776 (in bits) (by -64 bits)
   'uprobe_task* task_struct::utask' offset changed from 19904 to 19840 (in bits) (by -64 bits)
   'int task_struct::pagefault_disabled' offset changed from 19968 to 19904 (in bits) (by -64 bits)
   'task_struct* task_struct::oom_reaper_list' offset changed from 20032 to 19968 (in bits) (by -64 bits)
   'vm_struct* task_struct::stack_vm_area' offset changed from 20096 to 20032 (in bits) (by -64 bits)
   'refcount_t task_struct::stack_refcount' offset changed from 20160 to 20096 (in bits) (by -64 bits)
   'void* task_struct::security' offset changed from 20224 to 20160 (in bits) (by -64 bits)
   'thread_struct task_struct::thread' offset changed from 20352 to 20224 (in bits) (by -128 bits)

  1372 impacted interfaces:

Change-Id: Ie38f13364e737ee552eb7985e11d6af273c5b12a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-03-11 14:24:06 +01:00
Matthias Maennich
d0dbb0adbf ANDROID: abi_gki_aarch64_whitelist: add module_layout and task_struct
The module_layout symbol is a special case that is always kept exported,
even with CONFIG_TRIM_UNUSED_KSYMS=y.

task_struct is special in a different way. It can be accessed without
the use of an exported symbol through direct register access.

Add them to the global whitelist to ensure they are kept stable.

1 Added function:

  [A] 'function void module_layout(module*, modversion_info*, kernel_param*, kernel_symbol*, tracepoint* const*)'

Bug: 148277666
Bug: 147380000
Change-Id: Ib7ff326fd25da773e4dadc273ff60ec37b9f2bff
Signed-off-by: Matthias Maennich <maennich@google.com>
2020-03-04 23:09:20 +00:00
Todd Kjos
2f7f6ce2cf ANDROID: gki_defconfig: disable KPROBES, update ABI
Security teams from Google and Qualcomm request disabling
due to "large attack vector".

Also update the abi definition required for this change:

Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 3 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct module at module.h:348:1' changed:
  type size changed from 7168 to 6656 (in bits)
  2 data member deletions:
    'error_injection_entry* module::ei_funcs', at offset 6656 (in bits) at module.h:514:1

    'unsigned int module::num_ei_funcs', at offset 6720 (in bits) at module.h:515:1

  1309 impacted interfaces:
    function void* PDE_DATA(const inode*)
    function gendisk* __alloc_disk_node(int, int)
    function sk_buff* __cfg80211_alloc_event_skb(wiphy*, wireless_dev*, nl80211_commands, nl80211_attrs, unsigned int, int, int, gfp_t)
    function sk_buff* __cfg80211_alloc_reply_skb(wiphy*, nl80211_commands, nl80211_attrs, int)
    function class* __class_create(module*, const char*, lock_class_key*)
    function int __class_register(class*, lock_class_key*)
    function int __close_fd(files_struct*, unsigned int)
    function net_device* __dev_get_by_index(net*, int)
    function int __devm_iio_device_register(device*, iio_dev*, module*)
    function phy_provider* __devm_of_phy_provider_register(device*, device_node*, module*, void ()*)
    function regmap* __devm_regmap_init(device*, const regmap_bus*, void*, const regmap_config*, lock_class_key*, const char*)
    function regmap* __devm_regmap_init_i2c(i2c_client*, const regmap_config*, lock_class_key*, const char*)
    function regmap* __devm_regmap_init_mmio_clk(device*, const char*, void*, const regmap_config*, lock_class_key*, const char*)
    function resource* __devm_request_region(device*, resource*, resource_size_t, resource_size_t, const char*)
    function reset_control* __devm_reset_control_get(device*, const char*, int, bool, bool, bool)
    function void* __devres_alloc_node(dr_release_t, size_t, gfp_t, int, const char*)
    function void __drm_atomic_helper_crtc_destroy_state(drm_crtc_state*)
    function void __drm_atomic_helper_crtc_duplicate_state(drm_crtc*, drm_crtc_state*)
    function void __drm_atomic_helper_crtc_reset(drm_crtc*, drm_crtc_state*)
    function void __drm_atomic_helper_plane_destroy_state(drm_plane_state*)
    function void __drm_atomic_helper_plane_duplicate_state(drm_plane*, drm_plane_state*)
    function void __drm_atomic_helper_private_obj_duplicate_state(drm_private_obj*, drm_private_state*)
    function int __ethtool_get_link_ksettings(net_device*, ethtool_link_ksettings*)
    function int __hci_cmd_send(hci_dev*, u16, u32, void*)
    function sk_buff* __hci_cmd_sync(hci_dev*, u16, u32, void*, u32)
    function sk_buff* __hci_cmd_sync_ev(hci_dev*, u16, u32, void*, u8, u32)
    function int __hid_register_driver(hid_driver*, module*, const char*)
    function irq_domain* __irq_domain_add(fwnode_handle*, int, irq_hw_number_t, int, const irq_domain_ops*, void*)
    function int __mdiobus_register(mii_bus*, module*)
    function void __module_get(module*)
    function sk_buff* __napi_alloc_skb(napi_struct*, unsigned int, gfp_t)
    function void __napi_schedule(napi_struct*)
    function sk_buff* __netdev_alloc_skb(net_device*, unsigned int, gfp_t)
    function int __netif_set_xps_queue(net_device*, const unsigned long int*, u16, bool)
    function int __netlink_dump_start(sock*, sk_buff*, const nlmsghdr*, netlink_dump_control*)
    function reset_control* __of_reset_control_get(device_node*, const char*, int, bool, bool, bool)
    function int __pci_register_driver(pci_driver*, module*, const char*)
    function int __platform_driver_register(platform_driver*, module*)
    function int __platform_register_drivers(platform_driver* const*, unsigned int, module*)
    function void __pm_relax(wakeup_source*)
    function void __pm_runtime_disable(device*, bool)
    function int __pm_runtime_idle(device*, int)
    function int __pm_runtime_resume(device*, int)
    function int __pm_runtime_set_status(device*, unsigned int)
    function int __pm_runtime_suspend(device*, int)
    function void __pm_runtime_use_autosuspend(device*, bool)
    function void __pm_stay_awake(wakeup_source*)
    function regmap* __regmap_init(device*, const regmap_bus*, void*, const regmap_config*, lock_class_key*, const char*)
    function int __rtc_register_device(module*, rtc_device*)
    function int __serdev_device_driver_register(serdev_device_driver*, module*)
    function bool __skb_flow_dissect(const net*, const sk_buff*, flow_dissector*, void*, void*, __be16, int, int, unsigned int)
    function int __spi_register_driver(module*, spi_driver*)
    function int __spmi_driver_register(spmi_driver*, module*)
    function tty_driver* __tty_alloc_driver(unsigned int, module*, unsigned long int)
    function int __tty_insert_flip_char(tty_port*, unsigned char, char)
    function usb_hcd* __usb_create_hcd(const hc_driver*, device*, device*, const char*, usb_hcd*)
    function unsigned long int _copy_from_iter(void*, unsigned long int, iov_iter*)
    function bool _copy_from_iter_full(void*, unsigned long int, iov_iter*)
    function unsigned long int _copy_to_iter(void*, unsigned long int, iov_iter*)
    function void _dev_emerg(const device*, const char*, ...)
    function void _dev_err(const device*, const char*, ...)
    function void _dev_info(const device*, const char*, ...)
    function void _dev_notice(const device*, const char*, ...)
    function void _dev_warn(const device*, const char*, ...)
    function net_device* alloc_etherdev_mqs(int, unsigned int, unsigned int)
    function net_device* alloc_netdev_mqs(int, const char*, unsigned char, void ()*, unsigned int, unsigned int)
    function bool arch_bpf_jit_check_func(const bpf_prog*)
    function bio* bio_alloc_bioset(unsigned int, unsigned int, bio_set*)
    function void bio_chain(bio*, bio*)
    function void bio_clone_blkg_association(bio*, bio*)
    function void blk_cleanup_queue(request_queue*)
    function void blk_execute_rq(request_queue*, gendisk*, request*, int)
    function request* blk_get_request(request_queue*, unsigned int, blk_mq_req_flags_t)
    function bool blk_mq_complete_request(request*)
    function void blk_mq_end_request(request*, unsigned char)
    function request_queue* blk_mq_init_queue(blk_mq_tag_set*)
    function void blk_mq_quiesce_queue(request_queue*)
    function void blk_mq_start_request(request*)
    function void blk_mq_start_stopped_hw_queues(request_queue*, bool)
    function void blk_mq_stop_hw_queue(blk_mq_hw_ctx*)
    function void blk_mq_unquiesce_queue(request_queue*)
    function void blk_put_request(request*)
    function void blk_queue_alignment_offset(request_queue*, unsigned int)
    function void blk_queue_bounce_limit(request_queue*, u64)
    function void blk_queue_flag_set(unsigned int, request_queue*)
    function void blk_queue_io_min(request_queue*, unsigned int)
    function void blk_queue_io_opt(request_queue*, unsigned int)
    function void blk_queue_logical_block_size(request_queue*, unsigned int)
    function void blk_queue_max_discard_sectors(request_queue*, unsigned int)
    function void blk_queue_max_discard_segments(request_queue*, unsigned short int)
    function void blk_queue_max_hw_sectors(request_queue*, unsigned int)
    function void blk_queue_max_segment_size(request_queue*, unsigned int)
    function void blk_queue_max_segments(request_queue*, unsigned short int)
    function void blk_queue_max_write_zeroes_sectors(request_queue*, unsigned int)
    function void blk_queue_physical_block_size(request_queue*, unsigned int)
    function void blk_queue_update_dma_alignment(request_queue*, int)
    function void blk_queue_write_cache(request_queue*, bool, bool)
    function int blk_rq_map_kern(request_queue*, request*, void*, unsigned int, gfp_t)
    function int blk_rq_map_sg(request_queue*, request*, scatterlist*)
    function bpf_prog* bpf_prog_add(bpf_prog*, int)
    function void bpf_prog_put(bpf_prog*)
    function void bpf_prog_sub(bpf_prog*, int)
    function void bpf_trace_run10(bpf_prog*, u64, u64, u64, u64, u64, u64, u64, u64, u64, u64)
    function void bpf_trace_run6(bpf_prog*, u64, u64, u64, u64, u64, u64)
    function void bpf_trace_run7(bpf_prog*, u64, u64, u64, u64, u64, u64, u64)
    function void bpf_trace_run8(bpf_prog*, u64, u64, u64, u64, u64, u64, u64, u64)
    function int bprm_change_interp(const char*, linux_binprm*)
    function device* bus_find_device(bus_type*, device*, void*, void ()*)
    function int bus_for_each_drv(bus_type*, device_driver*, void*, void ()*)
    function int bus_register(bus_type*)
    function void bus_unregister(bus_type*)
    function int call_netdevice_notifiers(unsigned long int, net_device*)
    function int cdc_parse_cdc_header(usb_cdc_parsed_header*, usb_interface*, u8*, int)
    function int cdev_add(cdev*, unsigned int, unsigned int)
    function cdev* cdev_alloc()
    function void cdev_del(cdev*)
    function int cdev_device_add(cdev*, device*)
    function void cdev_device_del(cdev*, device*)
    function void cdev_init(cdev*, const file_operations*)
    function void cfg80211_connect_done(net_device*, cfg80211_connect_resp_params*, gfp_t)
    function void cfg80211_cqm_rssi_notify(net_device*, nl80211_cqm_rssi_threshold_event, s32, gfp_t)
    function void cfg80211_del_sta_sinfo(net_device*, const u8*, station_info*, gfp_t)
    function void cfg80211_disconnected(net_device*, u16, const u8*, size_t, bool, gfp_t)
    function cfg80211_bss* cfg80211_get_bss(wiphy*, ieee80211_channel*, const u8*, const u8*, size_t, ieee80211_bss_type, ieee80211_privacy)
    function cfg80211_bss* cfg80211_inform_bss_data(wiphy*, cfg80211_inform_bss*, cfg80211_bss_frame_type, const u8*, u64, u16, u16, const u8*, size_t, gfp_t)
    function void cfg80211_mgmt_tx_status(wireless_dev*, u64, const u8*, size_t, bool, gfp_t)
    function void cfg80211_michael_mic_failure(net_device*, const u8*, nl80211_key_type, int, const u8*, gfp_t)
    function void cfg80211_new_sta(net_device*, const u8*, station_info*, gfp_t)
    function void cfg80211_put_bss(wiphy*, cfg80211_bss*)
    function void cfg80211_ready_on_channel(wireless_dev*, u64, ieee80211_channel*, unsigned int, gfp_t)
    function void cfg80211_remain_on_channel_expired(wireless_dev*, u64, ieee80211_channel*, gfp_t)
    function void cfg80211_roamed(net_device*, cfg80211_roam_info*, gfp_t)
    function bool cfg80211_rx_mgmt(wireless_dev*, int, int, const u8*, size_t, u32)
    function void cfg80211_rx_unprot_mlme_mgmt(net_device*, const u8*, size_t)
    function void cfg80211_scan_done(cfg80211_scan_request*, cfg80211_scan_info*)
    function void cfg80211_sched_scan_results(wiphy*, u64)
    function void cfg80211_tdls_oper_request(net_device*, const u8*, nl80211_tdls_operation, u16, gfp_t)
    function void cfg80211_unlink_bss(wiphy*, cfg80211_bss*)
    function void cfg80211_unregister_wdev(wireless_dev*)
    function void class_destroy(class*)
    function device* class_find_device(class*, device*, void*, void ()*)
    function void class_unregister(class*)
    function void clear_inode(inode*)
    function int clk_bulk_get_all(device*, clk_bulk_data**)
    function clk* clk_get(device*, const char*)
    function int clk_hw_register(device*, clk_hw*)
    function clk_hw* clk_hw_register_fixed_factor(device*, const char*, const char*, unsigned long int, unsigned int, unsigned int)
    function void clk_sync_state(device*)
    function int component_add(device*, const component_ops*)
    function int component_bind_all(device*, void*)
    function void component_del(device*, const component_ops*)
    function int component_master_add_with_match(device*, const component_master_ops*, component_match*)
    function void component_master_del(device*, const component_master_ops*)
    function void component_match_add_release(device*, component_match**, void ()*, void ()*, void*)
    function void component_unbind_all(device*, void*)
    function void console_stop(console*)
    function int copy_strings_kernel(int, const char* const*, linux_binprm*)
    function int cpufreq_register_driver(cpufreq_driver*)
    function int cpufreq_unregister_driver(cpufreq_driver*)
    function crypto_engine* crypto_engine_alloc_init(device*, bool)
    function int crypto_engine_exit(crypto_engine*)
    function int crypto_engine_start(crypto_engine*)
    function void crypto_finalize_ablkcipher_request(crypto_engine*, ablkcipher_request*, int)
    function int crypto_register_alg(crypto_alg*)
    function int crypto_transfer_ablkcipher_request_to_engine(crypto_engine*, ablkcipher_request*)
    function int crypto_unregister_alg(crypto_alg*)
    function timespec64 current_time(inode*)
    function void d_drop(dentry*)
    function void d_instantiate(dentry*, inode*)
    function int dapm_regulator_event(snd_soc_dapm_widget*, snd_kcontrol*, int)
    function __poll_t datagram_poll(file*, socket*, poll_table*)
    function loff_t default_llseek(file*, loff_t, int)
    function void del_gendisk(gendisk*)
    function file* dentry_open(const path*, int, const cred*)
    function void dev_close(net_device*)
    function const char* dev_driver_string(const device*)
    function fwnode_handle* dev_fwnode(device*)
    function net_device* dev_get_by_index(net*, int)
    function net_device* dev_get_by_index_rcu(net*, int)
    function net_device* dev_get_by_name(net*, const char*)
    function regmap* dev_get_regmap(device*, const char*)
    function rtnl_link_stats64* dev_get_stats(net_device*, rtnl_link_stats64*)
    function int dev_mc_sync_multiple(net_device*, net_device*)
    function void dev_mc_unsync(net_device*, net_device*)
    function int dev_open(net_device*, netlink_ext_ack*)
    function device* dev_pm_domain_attach_by_name(device*, const char*)
    function void dev_pm_domain_detach(device*, bool)
    function int dev_pm_opp_add(device*, unsigned long int, unsigned long int)
    function dev_pm_opp* dev_pm_opp_find_freq_ceil(device*, unsigned long int*)
    function dev_pm_opp* dev_pm_opp_find_freq_exact(device*, unsigned long int, bool)
    function dev_pm_opp* dev_pm_opp_find_freq_floor(device*, unsigned long int*)
    function int dev_pm_opp_get_opp_count(device*)
    function int dev_pm_opp_of_add_table(device*)
    function void dev_pm_opp_of_remove_table(device*)
    function opp_table* dev_pm_opp_set_supported_hw(device*, const u32*, unsigned int)
    function void dev_printk(const char*, const device*, const char*, ...)
    function int dev_set_mtu(net_device*, int)
    function int dev_set_name(device*, const char*, ...)
    function int dev_uc_sync_multiple(net_device*, net_device*)
    function void dev_uc_unsync(net_device*, net_device*)
    function void devfreq_cooling_unregister(thermal_cooling_device*)
    function dev_pm_opp* devfreq_recommended_opp(device*, unsigned long int*, unsigned int)
    function int devfreq_register_opp_notifier(device*, devfreq*)
    function int devfreq_resume_device(devfreq*)
    function int devfreq_suspend_device(devfreq*)
    function int devfreq_unregister_opp_notifier(device*, devfreq*)
    function int device_add(device*)
    function void device_add_disk(device*, gendisk*, const attribute_group**)
    function void* device_connection_find_match(device*, const char*, void*, devcon_match_fn_t)
    function device* device_create(class*, device*, unsigned int, void*, const char*, ...)
    function int device_create_file(device*, const device_attribute*)
    function void device_del(device*)
    function void device_destroy(class*, unsigned int)
    function device* device_find_child(device*, void*, void ()*)
    function int device_for_each_child(device*, void*, void ()*)
    function void* device_get_match_data(device*)
    function fwnode_handle* device_get_named_child_node(device*, const char*)
    function fwnode_handle* device_get_next_child_node(device*, fwnode_handle*)
    function int device_init_wakeup(device*, bool)
    function void device_initialize(device*)
    function int device_match_fwnode(device*, void*)
    function int device_match_name(device*, void*)
    function int device_pm_wait_for_dev(device*, device*)
    function bool device_property_present(device*, const char*)
    function int device_property_read_string(device*, const char*, const char**)
    function int device_property_read_u32_array(device*, const char*, unsigned int*, unsigned long int)
    function int device_property_read_u8_array(device*, const char*, u8*, size_t)
    function int device_register(device*)
    function void device_release_driver(device*)
    function void device_remove_file(device*, const device_attribute*)
    function void device_set_wakeup_capable(device*, bool)
    function void device_unregister(device*)
    function int device_wakeup_enable(device*)
    function int devm_add_action(device*, void ()*, void*)
    function backlight_device* devm_backlight_device_register(device*, const char*, device*, void*, const backlight_ops*, const backlight_properties*)
    function int devm_clk_bulk_get(device*, int, clk_bulk_data*)
    function int devm_clk_bulk_get_all(device*, clk_bulk_data**)
    function clk* devm_clk_get(device*, const char*)
    function clk* devm_clk_get_optional(device*, const char*)
    function int devm_clk_hw_register(device*, clk_hw*)
    function clk* devm_clk_register(device*, clk_hw*)
    function devfreq* devm_devfreq_add_device(device*, devfreq_dev_profile*, const char*, void*)
    function void devm_devfreq_remove_device(device*, devfreq*)
    function extcon_dev* devm_extcon_dev_allocate(device*, const unsigned int*)
    function int devm_extcon_dev_register(device*, extcon_dev*)
    function int devm_extcon_register_notifier(device*, extcon_dev*, unsigned int, notifier_block*)
    function int devm_extcon_register_notifier_all(device*, extcon_dev*, notifier_block*)
    function void devm_free_irq(device*, unsigned int, void*)
    function int devm_gpio_request(device*, unsigned int, const char*)
    function int devm_gpio_request_one(device*, unsigned int, unsigned long int, const char*)
    function gpio_desc* devm_gpiod_get(device*, const char*, gpiod_flags)
    function gpio_desc* devm_gpiod_get_index(device*, const char*, unsigned int, gpiod_flags)
    function gpio_desc* devm_gpiod_get_optional(device*, const char*, gpiod_flags)
    function iio_channel* devm_iio_channel_get(device*, const char*)
    function iio_dev* devm_iio_device_alloc(device*, int)
    function input_dev* devm_input_allocate_device(device*)
    function void* devm_ioremap(device*, long long unsigned int, long long unsigned int)
    function void* devm_ioremap_nocache(device*, long long unsigned int, long long unsigned int)
    function void* devm_ioremap_resource(device*, const resource*)
    function void* devm_ioremap_wc(device*, resource_size_t, resource_size_t)
    function void devm_iounmap(device*, void*)
    function void devm_kfree(device*, void*)
    function void* devm_kmalloc(device*, unsigned long int, unsigned int)
    function void* devm_kmemdup(device*, void*, unsigned long int, unsigned int)
    function void* devm_memremap(device*, long long unsigned int, unsigned long int, unsigned long int)
    function int devm_mfd_add_devices(device*, int, const mfd_cell*, int, resource*, int, irq_domain*)
    function nvmem_cell* devm_nvmem_cell_get(device*, const char*)
    function nvmem_device* devm_nvmem_register(device*, const nvmem_config*)
    function int devm_of_clk_add_hw_provider(device*, void ()*, void*)
    function int devm_of_platform_populate(device*)
    function phy* devm_phy_create(device*, device_node*, const phy_ops*)
    function phy* devm_phy_get(device*, const char*)
    function pinctrl* devm_pinctrl_get(device*)
    function pinctrl_dev* devm_pinctrl_register(device*, pinctrl_desc*, void*)
    function void* devm_platform_ioremap_resource(platform_device*, unsigned int)
    function power_supply* devm_power_supply_register(device*, const power_supply_desc*, const power_supply_config*)
    function int devm_register_reboot_notifier(device*, notifier_block*)
    function int devm_regmap_add_irq_chip(device*, regmap*, int, int, int, const regmap_irq_chip*, regmap_irq_chip_data**)
    function regmap_field* devm_regmap_field_alloc(device*, regmap*, reg_field)
    function int devm_regulator_bulk_get(device*, int, regulator_bulk_data*)
    function regulator* devm_regulator_get(device*, const char*)
    function regulator* devm_regulator_get_exclusive(device*, const char*)
    function regulator* devm_regulator_get_optional(device*, const char*)
    function void devm_regulator_put(regulator*)
    function regulator_dev* devm_regulator_register(device*, const regulator_desc*, const regulator_config*)
    function int devm_request_any_context_irq(device*, unsigned int, void ()*, unsigned long int, const char*, void*)
    function int devm_request_threaded_irq(device*, unsigned int, void ()*, void ()*, unsigned long int, const char*, void*)
    function reset_control* devm_reset_control_array_get(device*, bool, bool)
    function int devm_reset_controller_register(device*, reset_controller_dev*)
    function rtc_device* devm_rtc_allocate_device(device*)
    function rtc_device* devm_rtc_device_register(device*, const char*, const rtc_class_ops*, module*)
    function int devm_snd_soc_register_card(device*, snd_soc_card*)
    function int devm_snd_soc_register_component(device*, const snd_soc_component_driver*, snd_soc_dai_driver*, int)
    function void devres_add(device*, void*)
    function int devres_destroy(device*, void ()*, void ()*, void*)
    function int devres_release(device*, void ()*, void ()*, void*)
    function void* dma_alloc_attrs(device*, unsigned long int, long long unsigned int*, unsigned int, unsigned long int)
    function dma_buf_attachment* dma_buf_attach(dma_buf*, device*)
    function int dma_buf_begin_cpu_access(dma_buf*, dma_data_direction)
    function void dma_buf_detach(dma_buf*, dma_buf_attachment*)
    function int dma_buf_end_cpu_access(dma_buf*, dma_data_direction)
    function dma_buf* dma_buf_export(const dma_buf_export_info*)
    function int dma_buf_fd(dma_buf*, int)
    function dma_buf* dma_buf_get(int)
    function void* dma_buf_kmap(dma_buf*, unsigned long int)
    function void dma_buf_kunmap(dma_buf*, unsigned long int, void*)
    function sg_table* dma_buf_map_attachment(dma_buf_attachment*, dma_data_direction)
    function int dma_buf_mmap(dma_buf*, vm_area_struct*, unsigned long int)
    function void dma_buf_put(dma_buf*)
    function void dma_buf_unmap_attachment(dma_buf_attachment*, sg_table*, dma_data_direction)
    function void* dma_buf_vmap(dma_buf*)
    function void dma_buf_vunmap(dma_buf*, void*)
    function long long unsigned int dma_direct_map_page(device*, page*, unsigned long int, unsigned long int, dma_data_direction, unsigned long int)
    function int dma_direct_map_sg(device*, scatterlist*, int, dma_data_direction, unsigned long int)
    function void dma_direct_sync_sg_for_device(device*, scatterlist*, int, dma_data_direction)
    function void dma_direct_sync_single_for_cpu(device*, long long unsigned int, unsigned long int, dma_data_direction)
    function void dma_direct_sync_single_for_device(device*, long long unsigned int, unsigned long int, dma_data_direction)
    function void dma_direct_unmap_page(device*, long long unsigned int, unsigned long int, dma_data_direction, unsigned long int)
    function void dma_direct_unmap_sg(device*, scatterlist*, int, dma_data_direction, unsigned long int)
    function void dma_free_attrs(device*, unsigned long int, void*, long long unsigned int, unsigned long int)
    function int dma_get_sgtable_attrs(device*, sg_table*, void*, dma_addr_t, size_t, unsigned long int)
    function size_t dma_max_mapping_size(device*)
    function int dma_mmap_attrs(device*, vm_area_struct*, void*, dma_addr_t, size_t, unsigned long int)
    function void* dma_pool_alloc(dma_pool*, gfp_t, dma_addr_t*)
    function dma_pool* dma_pool_create(const char*, device*, size_t, size_t, size_t)
    function void dma_pool_destroy(dma_pool*)
    function void dma_pool_free(dma_pool*, void*, dma_addr_t)
    function void dma_release_channel(dma_chan*)
    function dma_chan* dma_request_chan(device*, const char*)
    function int dma_set_coherent_mask(device*, long long unsigned int)
    function int dma_set_mask(device*, long long unsigned int)
    function void* dmam_alloc_attrs(device*, size_t, dma_addr_t*, gfp_t, unsigned long int)
    function void dmam_free_coherent(device*, size_t, void*, dma_addr_t)
    function void do_SAK(tty_struct*)
    function void dput(dentry*)
    function int driver_attach(device_driver*)
    function int driver_register(device_driver*)
    function void driver_unregister(device_driver*)
    function int drm_add_edid_modes(drm_connector*, edid*)
    function int drm_add_modes_noedid(drm_connector*, int, int)
    function drm_private_state* drm_atomic_get_private_obj_state(drm_atomic_state*, drm_private_obj*)
    function void drm_atomic_helper_async_commit(drm_device*, drm_atomic_state*)
    function int drm_atomic_helper_check(drm_device*, drm_atomic_state*)
    function int drm_atomic_helper_check_plane_state(drm_plane_state*, const drm_crtc_state*, int, int, bool, bool)
    function void drm_atomic_helper_cleanup_planes(drm_device*, drm_atomic_state*)
    function int drm_atomic_helper_commit(drm_device*, drm_atomic_state*, bool)
    function void drm_atomic_helper_commit_cleanup_done(drm_atomic_state*)
    function void drm_atomic_helper_commit_hw_done(drm_atomic_state*)
    function void drm_atomic_helper_commit_modeset_disables(drm_device*, drm_atomic_state*)
    function void drm_atomic_helper_commit_modeset_enables(drm_device*, drm_atomic_state*)
    function void drm_atomic_helper_commit_planes(drm_device*, drm_atomic_state*, unsigned int)
    function void drm_atomic_helper_commit_tail(drm_atomic_state*)
    function void drm_atomic_helper_connector_destroy_state(drm_connector*, drm_connector_state*)
    function drm_connector_state* drm_atomic_helper_connector_duplicate_state(drm_connector*)
    function void drm_atomic_helper_connector_reset(drm_connector*)
    function void drm_atomic_helper_crtc_destroy_state(drm_crtc*, drm_crtc_state*)
    function drm_crtc_state* drm_atomic_helper_crtc_duplicate_state(drm_crtc*)
    function void drm_atomic_helper_crtc_reset(drm_crtc*)
    function int drm_atomic_helper_dirtyfb(drm_framebuffer*, drm_file*, unsigned int, unsigned int, drm_clip_rect*, unsigned int)
    function int drm_atomic_helper_disable_plane(drm_plane*, drm_modeset_acquire_ctx*)
    function int drm_atomic_helper_page_flip(drm_crtc*, drm_framebuffer*, drm_pending_vblank_event*, uint32_t, drm_modeset_acquire_ctx*)
    function void drm_atomic_helper_plane_destroy_state(drm_plane*, drm_plane_state*)
    function drm_plane_state* drm_atomic_helper_plane_duplicate_state(drm_plane*)
    function void drm_atomic_helper_plane_reset(drm_plane*)
    function int drm_atomic_helper_prepare_planes(drm_device*, drm_atomic_state*)
    function int drm_atomic_helper_resume(drm_device*, drm_atomic_state*)
    function int drm_atomic_helper_set_config(drm_mode_set*, drm_modeset_acquire_ctx*)
    function void drm_atomic_helper_shutdown(drm_device*)
    function drm_atomic_state* drm_atomic_helper_suspend(drm_device*)
    function int drm_atomic_helper_swap_state(drm_atomic_state*, bool)
    function int drm_atomic_helper_update_plane(drm_plane*, drm_crtc*, drm_framebuffer*, int, int, unsigned int, unsigned int, uint32_t, uint32_t, uint32_t, uint32_t, drm_modeset_acquire_ctx*)
    function void drm_atomic_helper_wait_for_dependencies(drm_atomic_state*)
    function void drm_atomic_helper_wait_for_vblanks(drm_device*, drm_atomic_state*)
    function void drm_atomic_private_obj_fini(drm_private_obj*)
    function void drm_atomic_private_obj_init(drm_device*, drm_private_obj*, drm_private_state*, const drm_private_state_funcs*)
    function void drm_bridge_add(drm_bridge*)
    function int drm_bridge_attach(drm_encoder*, drm_bridge*, drm_bridge*)
    function void drm_bridge_remove(drm_bridge*)
    function bool drm_calc_vbltimestamp_from_scanoutpos(drm_device*, unsigned int, int*, ktime_t*, bool)
    function int drm_class_device_register(device*)
    function void drm_class_device_unregister(device*)
    function long int drm_compat_ioctl(file*, unsigned int, unsigned long int)
    function void drm_connector_attach_edid_property(drm_connector*)
    function int drm_connector_attach_encoder(drm_connector*, drm_encoder*)
    function void drm_connector_cleanup(drm_connector*)
    function bool drm_connector_has_possible_encoder(drm_connector*, drm_encoder*)
    function int drm_connector_init(drm_device*, drm_connector*, const drm_connector_funcs*, int)
    function int drm_connector_register(drm_connector*)
    function void drm_connector_unregister(drm_connector*)
    function int drm_connector_update_edid_property(drm_connector*, const edid*)
    function void drm_crtc_cleanup(drm_crtc*)
    function bool drm_crtc_handle_vblank(drm_crtc*)
    function int drm_crtc_init_with_planes(drm_device*, drm_crtc*, drm_plane*, drm_plane*, const drm_crtc_funcs*, const char*, ...)
    function void drm_crtc_send_vblank_event(drm_crtc*, drm_pending_vblank_event*)
    function void drm_crtc_set_max_vblank_count(drm_crtc*, u32)
    function int drm_crtc_vblank_get(drm_crtc*)
    function void drm_crtc_vblank_off(drm_crtc*)
    function void drm_crtc_vblank_on(drm_crtc*)
    function void drm_crtc_vblank_put(drm_crtc*)
    function void drm_crtc_vblank_reset(drm_crtc*)
    function drm_display_mode* drm_cvt_mode(drm_device*, int, int, int, bool, bool, bool)
    function drm_device* drm_dev_alloc(drm_driver*, device*)
    function void drm_dev_dbg(const device*, unsigned int, const char*, ...)
    function void drm_dev_printk(const device*, const char*, const char*, ...)
    function void drm_dev_put(drm_device*)
    function int drm_dev_register(drm_device*, unsigned long int)
    function int drm_dev_set_unique(drm_device*, const char*)
    function void drm_dev_unregister(drm_device*)
    function edid* drm_do_get_edid(drm_connector*, void ()*, void*)
    function int drm_dp_aux_register(drm_dp_aux*)
    function void drm_dp_aux_unregister(drm_dp_aux*)
    function ssize_t drm_dp_dpcd_read(drm_dp_aux*, unsigned int, void*, size_t)
    function int drm_dp_dpcd_read_link_status(drm_dp_aux*, u8*)
    function ssize_t drm_dp_dpcd_write(drm_dp_aux*, unsigned int, void*, size_t)
    function int drm_dp_link_configure(drm_dp_aux*, drm_dp_link*)
    function int drm_dp_link_power_down(drm_dp_aux*, drm_dp_link*)
    function int drm_dp_link_power_up(drm_dp_aux*, drm_dp_link*)
    function int drm_dp_link_probe(drm_dp_aux*, drm_dp_link*)
    function void drm_encoder_cleanup(drm_encoder*)
    function int drm_encoder_init(drm_device*, drm_encoder*, const drm_encoder_funcs*, int, const char*, ...)
    function int drm_framebuffer_init(drm_device*, drm_framebuffer*, const drm_framebuffer_funcs*)
    function int drm_gem_create_mmap_offset(drm_gem_object*)
    function drm_framebuffer* drm_gem_fb_create(drm_device*, drm_file*, const drm_mode_fb_cmd2*)
    function int drm_gem_fb_create_handle(drm_framebuffer*, drm_file*, unsigned int*)
    function void drm_gem_fb_destroy(drm_framebuffer*)
    function drm_gem_object* drm_gem_fb_get_obj(drm_framebuffer*, unsigned int)
    function int drm_gem_fb_prepare_fb(drm_plane*, drm_plane_state*)
    function void drm_gem_free_mmap_offset(drm_gem_object*)
    function page** drm_gem_get_pages(drm_gem_object*)
    function int drm_gem_handle_create(drm_file*, drm_gem_object*, unsigned int*)
    function int drm_gem_mmap(file*, vm_area_struct*)
    function int drm_gem_mmap_obj(drm_gem_object*, unsigned long int, vm_area_struct*)
    function int drm_gem_object_init(drm_device*, drm_gem_object*, size_t)
    function drm_gem_object* drm_gem_object_lookup(drm_file*, unsigned int)
    function void drm_gem_object_put(drm_gem_object*)
    function void drm_gem_object_put_unlocked(drm_gem_object*)
    function void drm_gem_object_release(drm_gem_object*)
    function int drm_gem_prime_fd_to_handle(drm_device*, drm_file*, int, uint32_t*)
    function int drm_gem_prime_handle_to_fd(drm_device*, drm_file*, uint32_t, uint32_t, int*)
    function drm_gem_object* drm_gem_prime_import(drm_device*, dma_buf*)
    function int drm_gem_prime_mmap(drm_gem_object*, vm_area_struct*)
    function void drm_gem_private_object_init(drm_device*, drm_gem_object*, unsigned long int)
    function void drm_gem_put_pages(drm_gem_object*, page**, bool, bool)
    function edid* drm_get_edid(drm_connector*, i2c_adapter*)
    function const drm_format_info* drm_get_format_info(drm_device*, const drm_mode_fb_cmd2*)
    function bool drm_handle_vblank(drm_device*, unsigned int)
    function int drm_hdmi_avi_infoframe_from_display_mode(hdmi_avi_infoframe*, drm_connector*, const drm_display_mode*)
    function bool drm_helper_hpd_irq_event(drm_device*)
    function void drm_helper_mode_fill_fb_struct(drm_device*, drm_framebuffer*, const drm_mode_fb_cmd2*)
    function int drm_helper_probe_single_connector_modes(drm_connector*, uint32_t, uint32_t)
    function long int drm_ioctl(file*, unsigned int, unsigned long int)
    function int drm_irq_install(drm_device*, int)
    function int drm_irq_uninstall(drm_device*)
    function void drm_kms_helper_hotplug_event(drm_device*)
    function void drm_kms_helper_poll_fini(drm_device*)
    function void drm_kms_helper_poll_init(drm_device*)
    function void drm_mode_config_cleanup(drm_device*)
    function void drm_mode_config_init(drm_device*)
    function void drm_mode_config_reset(drm_device*)
    function drm_display_mode* drm_mode_create(drm_device*)
    function int drm_mode_crtc_set_gamma_size(drm_crtc*, int)
    function void drm_mode_destroy(drm_device*, drm_display_mode*)
    function drm_display_mode* drm_mode_duplicate(drm_device*, const drm_display_mode*)
    function drm_mode_object* drm_mode_object_find(drm_device*, drm_file*, unsigned int, unsigned int)
    function void drm_mode_probed_add(drm_connector*, drm_display_mode*)
    function void drm_object_attach_property(drm_mode_object*, drm_property*, long long unsigned int)
    function void drm_of_component_match_add(device*, component_match**, void ()*, device_node*)
    function int drm_open(inode*, file*)
    function int drm_panel_add(drm_panel*)
    function int drm_panel_attach(drm_panel*, drm_connector*)
    function void drm_panel_detach(drm_panel*)
    function int drm_panel_disable(drm_panel*)
    function int drm_panel_enable(drm_panel*)
    function int drm_panel_get_modes(drm_panel*)
    function void drm_panel_init(drm_panel*)
    function int drm_panel_prepare(drm_panel*)
    function void drm_panel_remove(drm_panel*)
    function int drm_panel_unprepare(drm_panel*)
    function void drm_plane_cleanup(drm_plane*)
    function int drm_plane_create_alpha_property(drm_plane*)
    function int drm_plane_create_blend_mode_property(drm_plane*, unsigned int)
    function int drm_plane_create_rotation_property(drm_plane*, unsigned int, unsigned int)
    function int drm_plane_create_zpos_immutable_property(drm_plane*, unsigned int)
    function int drm_plane_create_zpos_property(drm_plane*, unsigned int, unsigned int, unsigned int)
    function void drm_plane_enable_fb_damage_clips(drm_plane*)
    function __poll_t drm_poll(file*, poll_table_struct*)
    function void drm_prime_gem_destroy(drm_gem_object*, sg_table*)
    function drm_property* drm_property_create(drm_device*, unsigned int, const char*, int)
    function drm_property_blob* drm_property_create_blob(drm_device*, unsigned long int, void*)
    function drm_property* drm_property_create_range(drm_device*, unsigned int, const char*, long long unsigned int, long long unsigned int)
    function void drm_put_dev(drm_device*)
    function ssize_t drm_read(file*, char*, size_t, loff_t*)
    function int drm_release(inode*, file*)
    function void drm_set_preferred_mode(drm_connector*, int, int)
    function void drm_state_dump(drm_device*, drm_printer*)
    function int drm_universal_plane_init(drm_device*, drm_plane*, unsigned int, const drm_plane_funcs*, const unsigned int*, unsigned int, const long long unsigned int*, drm_plane_type, const char*, ...)
    function int drm_vblank_init(drm_device*, unsigned int)
    function void drop_nlink(inode*)
    function void dst_release(dst_entry*)
    function int dw_pcie_host_init(pcie_port*)
    function void dw_pcie_msi_init(pcie_port*)
    function void dw_pcie_setup_rc(pcie_port*)
    function int dw_pcie_wait_for_link(dw_pcie*)
    function void eth_commit_mac_addr_change(net_device*, void*)
    function int eth_mac_addr(net_device*, void*)
    function int eth_platform_get_mac_address(device*, u8*)
    function int eth_prepare_mac_addr_change(net_device*, void*)
    function unsigned short int eth_type_trans(sk_buff*, net_device*)
    function int eth_validate_addr(net_device*)
    function void ether_setup(net_device*)
    function unsigned int ethtool_op_get_link(net_device*)
    function int ethtool_op_get_ts_info(net_device*, ethtool_ts_info*)
    function event_trigger_type event_triggers_call(trace_event_file*, void*, ring_buffer_event*)
    function extcon_dev* extcon_find_edev_by_node(device_node*)
    function extcon_dev* extcon_get_edev_by_phandle(device*, int)
    function extcon_dev* extcon_get_extcon_dev(const char*)
    function int extcon_get_state(extcon_dev*, const unsigned int)
    function int extcon_register_notifier(extcon_dev*, unsigned int, notifier_block*)
    function int extcon_set_state_sync(extcon_dev*, unsigned int, bool)
    function int extcon_unregister_notifier(extcon_dev*, unsigned int, notifier_block*)
    function void fd_install(unsigned int, file*)
    function file* fget(unsigned int)
    function int filp_close(file*, void*)
    function void fput(file*)
    function void free_netdev(net_device*)
    function const ieee80211_reg_rule* freq_reg_info(wiphy*, u32)
    function void* fwnode_connection_find_match(fwnode_handle*, const char*, void*, devcon_match_fn_t)
    function fwnode_handle* fwnode_get_parent(const fwnode_handle*)
    function void fwnode_handle_put(fwnode_handle*)
    function bool fwnode_property_present(const fwnode_handle*, const char*)
    function int fwnode_property_read_string(const fwnode_handle*, const char*, const char**)
    function int fwnode_property_read_u16_array(const fwnode_handle*, const char*, unsigned short int*, unsigned long int)
    function int fwnode_property_read_u32_array(const fwnode_handle*, const char*, unsigned int*, unsigned long int)
    function loff_t generic_file_llseek(file*, loff_t, int)
    function int generic_mii_ioctl(mii_if_info*, mii_ioctl_data*, int, unsigned int*)
    function int genl_register_family(genl_family*)
    function int genl_unregister_family(const genl_family*)
    function void* genlmsg_put(sk_buff*, unsigned int, unsigned int, const genl_family*, int, unsigned char)
    function int genphy_resume(phy_device*)
    function device* get_device(device*)
    function int get_tree_single(fs_context*, void ()*)
    function gnss_device* gnss_allocate_device(device*)
    function void gnss_deregister_device(gnss_device*)
    function int gnss_insert_raw(gnss_device*, const unsigned char*, size_t)
    function void gnss_put_device(gnss_device*)
    function int gnss_register_device(gnss_device*)
    function int gpiochip_add_data_with_key(gpio_chip*, void*, lock_class_key*, lock_class_key*)
    function int gpiochip_add_pin_range(gpio_chip*, const char*, unsigned int, unsigned int, unsigned int)
    function void gpiochip_generic_free(gpio_chip*, unsigned int)
    function int gpiochip_generic_request(gpio_chip*, unsigned int)
    function void* gpiochip_get_data(gpio_chip*)
    function void gpiochip_populate_parent_fwspec_fourcell(gpio_chip*, irq_fwspec*, unsigned int, unsigned int)
    function void gpiochip_remove(gpio_chip*)
    function void handle_edge_irq(irq_desc*)
    function void handle_level_irq(irq_desc*)
    function hci_dev* hci_alloc_dev()
    function void hci_free_dev(hci_dev*)
    function int hci_recv_diag(hci_dev*, sk_buff*)
    function int hci_recv_frame(hci_dev*, sk_buff*)
    function int hci_register_dev(hci_dev*)
    function void hci_unregister_dev(hci_dev*)
    function int hid_hw_start(hid_device*, unsigned int)
    function const hid_device_id* hid_match_device(hid_device*, hid_driver*)
    function int hid_open_report(hid_device*)
    function void hid_unregister_driver(hid_driver*)
    function int hwspin_lock_register(hwspinlock_device*, device*, const hwspinlock_ops*, int, int)
    function int hwspin_lock_unregister(hwspinlock_device*)
    function int i2c_add_adapter(i2c_adapter*)
    function void i2c_del_adapter(i2c_adapter*)
    function void i2c_del_driver(i2c_driver*)
    function i2c_client* i2c_new_probed_device(i2c_adapter*, i2c_board_info*, const unsigned short int*, void ()*)
    function int i2c_register_driver(module*, i2c_driver*)
    function int i2c_smbus_read_byte_data(const i2c_client*, unsigned char)
    function int i2c_smbus_write_byte_data(const i2c_client*, unsigned char, unsigned char)
    function int i2c_transfer(i2c_adapter*, i2c_msg*, int)
    function int icc_link_create(icc_node*, const int)
    function void icc_node_add(icc_node*, icc_provider*)
    function icc_node* icc_node_create(int)
    function void icc_node_del(icc_node*)
    function int icc_provider_add(icc_provider*)
    function int icc_provider_del(icc_provider*)
    function void icc_put(icc_path*)
    function int icc_set_bw(icc_path*, u32, u32)
    function ieee80211_channel* ieee80211_get_channel(wiphy*, int)
    function iio_channel* iio_channel_get(device*, const char*)
    function iio_dev* iio_device_alloc(int)
    function void iio_device_free(iio_dev*)
    function void iio_device_unregister(iio_dev*)
    function int iio_read_channel_processed(iio_channel*, int*)
    function int iio_read_channel_raw(iio_channel*, int*)
    function int iio_write_channel_attribute(iio_channel*, int, int, iio_chan_info_enum)
    function unsigned int inet_select_addr(const net_device*, unsigned int, int)
    function void input_alloc_absinfo(input_dev*)
    function input_dev* input_allocate_device()
    function void input_event(input_dev*, unsigned int, unsigned int, int)
    function void input_free_device(input_dev*)
    function int input_mt_init_slots(input_dev*, unsigned int, unsigned int)
    function bool input_mt_report_slot_state(input_dev*, unsigned int, bool)
    function int input_register_device(input_dev*)
    function void input_set_abs_params(input_dev*, unsigned int, int, int, int, int)
    function void input_set_capability(input_dev*, unsigned int, unsigned int)
    function void input_unregister_device(input_dev*)
    function unsigned long int invalidate_mapping_pages(address_space*, unsigned long int, unsigned long int)
    function int iommu_attach_device(iommu_domain*, device*)
    function void iommu_detach_device(iommu_domain*, device*)
    function iommu_domain* iommu_domain_alloc(bus_type*)
    function void iommu_domain_free(iommu_domain*)
    function int iommu_map(iommu_domain*, unsigned long int, phys_addr_t, size_t, int)
    function size_t iommu_map_sg(iommu_domain*, unsigned long int, scatterlist*, unsigned int, int)
    function bool iommu_present(bus_type*)
    function void iommu_set_fault_handler(iommu_domain*, iommu_fault_handler_t, void*)
    function unsigned long int iommu_unmap(iommu_domain*, unsigned long int, unsigned long int)
    function int ip6_local_out(net*, sock*, sk_buff*)
    function dst_entry* ip6_route_output_flags(net*, const sock*, flowi6*, int)
    function int ip_local_out(net*, sock*, sk_buff*)
    function rtable* ip_route_output_flow(net*, flowi4*, const sock*)
    function void iput(inode*)
    function int ipv6_dev_get_saddr(net*, const net_device*, const in6_addr*, unsigned int, in6_addr*)
    function void irq_chip_ack_parent(irq_data*)
    function void irq_chip_mask_parent(irq_data*)
    function int irq_chip_set_type_parent(irq_data*, unsigned int)
    function int irq_chip_set_wake_parent(irq_data*, unsigned int)
    function void irq_chip_unmask_parent(irq_data*)
    function unsigned int irq_create_of_mapping(of_phandle_args*)
    function void irq_domain_free_irqs_common(irq_domain*, unsigned int, unsigned int)
    function void irq_domain_remove(irq_domain*)
    function void irq_domain_set_info(irq_domain*, unsigned int, unsigned long int, irq_chip*, void*, void ()*, void*, const char*)
    function int irq_domain_xlate_onecell(irq_domain*, device_node*, const u32*, unsigned int, unsigned long int*, unsigned int*)
    function int irq_domain_xlate_twocell(irq_domain*, device_node*, const u32*, unsigned int, irq_hw_number_t*, unsigned int*)
    function unsigned int irq_find_mapping(irq_domain*, unsigned long int)
    function irq_domain* irq_find_matching_fwspec(irq_fwspec*, irq_domain_bus_token)
    function irq_data* irq_get_irq_data(unsigned int)
    function unsigned int irq_of_parse_and_map(device_node*, int)
    function void irq_set_chained_handler_and_data(unsigned int, void ()*, void*)
    function void irq_set_chip_and_handler_name(unsigned int, irq_chip*, void ()*, const char*)
    function irq_desc* irq_to_desc(unsigned int)
    function long int kernel_read(file*, void*, unsigned long int, long long int*)
    function long int kernel_write(file*, void*, unsigned long int, long long int*)
    function void kill_litter_super(super_block*)
    function void lock_sock_nested(sock*, int)
    function dentry* lookup_one_len(const char*, dentry*, int)
    function mii_bus* mdiobus_alloc_size(size_t)
    function void mdiobus_free(mii_bus*)
    function void mdiobus_unregister(mii_bus*)
    function int mfd_add_devices(device*, int, const mfd_cell*, int, resource*, int, irq_domain*)
    function unsigned int mii_check_media(mii_if_info*, unsigned int, unsigned int)
    function void mii_ethtool_get_link_ksettings(mii_if_info*, ethtool_link_ksettings*)
    function int mii_ethtool_gset(mii_if_info*, ethtool_cmd*)
    function int mii_ethtool_set_link_ksettings(mii_if_info*, const ethtool_link_ksettings*)
    function int mii_link_ok(mii_if_info*)
    function int mii_nway_restart(mii_if_info*)
    function int mipi_dsi_attach(mipi_dsi_device*)
    function ssize_t mipi_dsi_dcs_read(mipi_dsi_device*, u8, void*, size_t)
    function ssize_t mipi_dsi_dcs_write_buffer(mipi_dsi_device*, void*, size_t)
    function int mipi_dsi_detach(mipi_dsi_device*)
    function mipi_dsi_device* mipi_dsi_device_register_full(mipi_dsi_host*, const mipi_dsi_device_info*)
    function void mipi_dsi_device_unregister(mipi_dsi_device*)
    function int mipi_dsi_driver_register_full(mipi_dsi_driver*, module*)
    function void mipi_dsi_driver_unregister(mipi_dsi_driver*)
    function ssize_t mipi_dsi_generic_read(mipi_dsi_device*, void*, size_t, void*, size_t)
    function ssize_t mipi_dsi_generic_write(mipi_dsi_device*, void*, size_t)
    function int mipi_dsi_host_register(mipi_dsi_host*)
    function void mipi_dsi_host_unregister(mipi_dsi_host*)
    function int mipi_dsi_set_maximum_return_packet_size(mipi_dsi_device*, u16)
    function void misc_deregister(miscdevice*)
    function int misc_register(miscdevice*)
    function void mmc_detect_change(mmc_host*, unsigned long int)
    function int mmc_of_parse(mmc_host*)
    function int mmc_send_tuning(mmc_host*, u32, int*)
    function void mmc_set_data_timeout(mmc_data*, const mmc_card*)
    function void mmc_wait_for_req(mmc_host*, mmc_request*)
    function void module_put(module*)
    function int msm_pinctrl_probe(platform_device*, const msm_pinctrl_soc_data*)
    function int msm_pinctrl_remove(platform_device*)
    function int n_tty_ioctl_helper(tty_struct*, file*, unsigned int, unsigned long int)
    function bool napi_complete_done(napi_struct*, int)
    function void napi_disable(napi_struct*)
    function gro_result napi_gro_receive(napi_struct*, sk_buff*)
    function bool napi_hash_del(napi_struct*)
    function bool napi_schedule_prep(napi_struct*)
    function void neigh_destroy(neighbour*)
    function void netdev_change_features(net_device*)
    function void netdev_err(const net_device*, const char*, ...)
    function void netdev_info(const net_device*, const char*, ...)
    function void netdev_lower_state_changed(net_device*, void*)
    function int netdev_master_upper_dev_link(net_device*, net_device*, void*, void*, netlink_ext_ack*)
    function void netdev_notify_peers(net_device*)
    function u16 netdev_pick_tx(net_device*, sk_buff*, net_device*)
    function int netdev_rx_handler_register(net_device*, rx_handler_func_t*, void*)
    function void netdev_rx_handler_unregister(net_device*)
    function int netdev_upper_dev_link(net_device*, net_device*, netlink_ext_ack*)
    function void netdev_upper_dev_unlink(net_device*, net_device*)
    function void netdev_warn(const net_device*, const char*, ...)
    function void netif_carrier_off(net_device*)
    function void netif_carrier_on(net_device*)
    function void netif_device_attach(net_device*)
    function void netif_device_detach(net_device*)
    function void netif_napi_add(net_device*, napi_struct*, void ()*, int)
    function void netif_napi_del(napi_struct*)
    function void netif_schedule_queue(netdev_queue*)
    function int netif_set_real_num_rx_queues(net_device*, unsigned int)
    function int netif_set_real_num_tx_queues(net_device*, unsigned int)
    function void netif_stacked_transfer_operstate(const net_device*, net_device*)
    function void netif_tx_stop_all_queues(net_device*)
    function void netif_tx_wake_queue(netdev_queue*)
    function int netlink_unicast(sock*, sk_buff*, unsigned int, int)
    function inode* new_inode(super_block*)
    function nf_conntrack_tuple_hash* nf_conntrack_find_get(net*, const nf_conntrack_zone*, const nf_conntrack_tuple*)
    function bool nf_ct_get_tuplepr(const sk_buff*, unsigned int, unsigned short int, net*, nf_conntrack_tuple*)
    function int nf_register_net_hooks(net*, const nf_hook_ops*, unsigned int)
    function void nf_unregister_net_hooks(net*, const nf_hook_ops*, unsigned int)
    function loff_t no_llseek(file*, loff_t, int)
    function int nonseekable_open(inode*, file*)
    function loff_t noop_llseek(file*, loff_t, int)
    function nvdimm_bus* nvdimm_bus_register(device*, nvdimm_bus_descriptor*)
    function nd_region* nvdimm_pmem_region_create(nvdimm_bus*, nd_region_desc*)
    function nvmem_cell* nvmem_cell_get(device*, const char*)
    function void nvmem_cell_put(nvmem_cell*)
    function void* nvmem_cell_read(nvmem_cell*, size_t*)
    function int of_address_to_resource(device_node*, int, resource*)
    function int of_alias_get_id(device_node*, const char*)
    function int of_clk_add_hw_provider(device_node*, void ()*, void*)
    function void of_clk_del_provider(device_node*)
    function clk* of_clk_get(device_node*, int)
    function unsigned int of_clk_get_parent_count(device_node*)
    function clk_hw* of_clk_hw_onecell_get(of_phandle_args*, void*)
    function clk_hw* of_clk_hw_simple_get(of_phandle_args*, void*)
    function int of_clk_set_defaults(device_node*, bool)
    function thermal_cooling_device* of_devfreq_cooling_register_power(device_node*, devfreq*, devfreq_cooling_power*)
    function void* of_device_get_match_data(const device*)
    function bool of_device_is_available(const device_node*)
    function int of_device_is_compatible(const device_node*, const char*)
    function long int of_device_modalias(device*, char*, long int)
    function int of_device_request_module(device*)
    function int of_device_uevent_modalias(device*, kobj_uevent_env*)
    function int of_dma_configure(device*, device_node*, bool)
    function dma_chan* of_dma_request_slave_channel(device_node*, const char*)
    function drm_bridge* of_drm_find_bridge(device_node*)
    function drm_panel* of_drm_find_panel(const device_node*)
    function void* of_fdt_unflatten_tree(const unsigned long int*, device_node*, device_node**)
    function backlight_device* of_find_backlight_by_node(device_node*)
    function device_node* of_find_compatible_node(device_node*, const char*, const char*)
    function platform_device* of_find_device_by_node(device_node*)
    function i2c_adapter* of_find_i2c_adapter_by_node(device_node*)
    function device_node* of_find_matching_node_and_match(device_node*, const of_device_id*, const of_device_id**)
    function mipi_dsi_host* of_find_mipi_dsi_host_by_node(device_node*)
    function device_node* of_find_node_by_name(device_node*, const char*)
    function device_node* of_find_node_opts_by_path(const char*, const char**)
    function property* of_find_property(const device_node*, const char*, int*)
    function int of_genpd_add_provider_simple(device_node*, generic_pm_domain*)
    function device_node* of_get_child_by_name(const device_node*, const char*)
    function device_node* of_get_compatible_child(const device_node*, const char*)
    function int of_get_drm_display_mode(device_node*, drm_display_mode*, u32*, int)
    function int of_get_named_gpio_flags(device_node*, const char*, int, of_gpio_flags*)
    function device_node* of_get_next_available_child(const device_node*, device_node*)
    function device_node* of_get_next_child(const device_node*, device_node*)
    function device_node* of_get_parent(const device_node*)
    function void* of_get_property(const device_node*, const char*, int*)
    function regulator_init_data* of_get_regulator_init_data(device*, device_node*, const regulator_desc*)
    function device_node* of_graph_get_endpoint_by_regs(const device_node*, int, int)
    function device_node* of_graph_get_next_endpoint(const device_node*, device_node*)
    function device_node* of_graph_get_remote_node(const device_node*, unsigned int, unsigned int)
    function device_node* of_graph_get_remote_port_parent(const device_node*)
    function int of_graph_parse_endpoint(const device_node*, of_endpoint*)
    function int of_hwspin_lock_get_id(device_node*, int)
    function icc_path* of_icc_get(device*, const char*)
    function icc_node* of_icc_xlate_onecell(of_phandle_args*, void*)
    function void* of_iomap(device_node*, int)
    function device_node* of_irq_find_parent(device_node*)
    function const of_device_id* of_match_device(const of_device_id*, const device*)
    function const of_device_id* of_match_node(const of_device_id*, const device_node*)
    function bool of_node_name_eq(const device_node*, const char*)
    function device_node* of_parse_phandle(const device_node*, const char*, int)
    function int of_parse_phandle_with_args(const device_node*, const char*, const char*, int, of_phandle_args*)
    function phy* of_phy_simple_xlate(device*, of_phandle_args*)
    function void of_platform_depopulate(device*)
    function int of_platform_populate(device_node*, const of_device_id*, const of_dev_auxdata*, device*)
    function int of_property_count_elems_of_size(const device_node*, const char*, int)
    function int of_property_match_string(const device_node*, const char*, const char*)
    function int of_property_read_string(const device_node*, const char*, const char**)
    function int of_property_read_string_helper(const device_node*, const char*, const char**, unsigned long int, int)
    function int of_property_read_u32_index(const device_node*, const char*, unsigned int, unsigned int*)
    function int of_property_read_variable_u32_array(const device_node*, const char*, unsigned int*, unsigned long int, unsigned long int)
    function int of_property_read_variable_u8_array(const device_node*, const char*, u8*, size_t, size_t)
    function pwm_device* of_pwm_get(device*, device_node*, const char*)
    function reserved_mem* of_reserved_mem_lookup(device_node*)
    function reset_control* of_reset_control_array_get(device_node*, bool, bool, bool)
    function usb_phy_interface of_usb_get_phy_mode(device_node*)
    function bool of_usb_host_tpl_support(device_node*)
    function file* open_exec(const char*)
    function netdev_features_t passthru_features_check(sk_buff*, net_device*, netdev_features_t)
    function int pci_alloc_irq_vectors_affinity(pci_dev*, unsigned int, unsigned int, unsigned int, irq_affinity*)
    function void pci_assign_unassigned_bus_resources(pci_bus*)
    function void pci_bus_add_devices(const pci_bus*)
    function void pci_clear_mwi(pci_dev*)
    function void pci_d3cold_disable(pci_dev*)
    function pci_dev* pci_dev_get(pci_dev*)
    function void pci_dev_put(pci_dev*)
    function void pci_disable_device(pci_dev*)
    function int pci_enable_device(pci_dev*)
    function int pci_find_capability(pci_dev*, int)
    function int pci_find_ext_capability(pci_dev*, int)
    function int pci_find_next_capability(pci_dev*, u8, int)
    function void pci_free_irq_vectors(pci_dev*)
    function pci_dev* pci_get_slot(pci_bus*, unsigned int)
    function void* pci_iomap(pci_dev*, int, unsigned long int)
    function void* pci_iomap_range(pci_dev*, int, unsigned long int, unsigned long int)
    function const cpumask* pci_irq_get_affinity(pci_dev*, int)
    function int pci_irq_vector(pci_dev*, unsigned int)
    function const pci_device_id* pci_match_id(const pci_device_id*, pci_dev*)
    function int pci_read_config_byte(const pci_dev*, int, u8*)
    function int pci_read_config_dword(const pci_dev*, int, unsigned int*)
    function int pci_read_config_word(const pci_dev*, int, unsigned short int*)
    function void pci_release_regions(pci_dev*)
    function void pci_release_selected_regions(pci_dev*, int)
    function int pci_request_regions(pci_dev*, const char*)
    function int pci_request_selected_regions(pci_dev*, int, const char*)
    function void pci_restore_state(pci_dev*)
    function int pci_save_state(pci_dev*)
    function unsigned int pci_scan_child_bus(pci_bus*)
    function void pci_set_master(pci_dev*)
    function int pci_set_mwi(pci_dev*)
    function int pci_set_power_state(pci_dev*, pci_power_t)
    function void pci_stop_and_remove_bus_device(pci_dev*)
    function void pci_unregister_driver(pci_driver*)
    function int pci_write_config_byte(const pci_dev*, int, u8)
    function int pci_write_config_dword(const pci_dev*, int, unsigned int)
    function void pcie_bus_configure_settings(pci_bus*)
    function int pcim_enable_device(pci_dev*)
    function void perf_trace_run_bpf_submit(void*, int, int, trace_event_call*, long long unsigned int, pt_regs*, hlist_head*, task_struct*)
    function phy_device* phy_connect(net_device*, const char*, void ()*, phy_interface_t)
    function void phy_disconnect(phy_device*)
    function int phy_ethtool_get_link_ksettings(net_device*, ethtool_link_ksettings*)
    function int phy_ethtool_nway_reset(net_device*)
    function int phy_ethtool_set_link_ksettings(net_device*, const ethtool_link_ksettings*)
    function int phy_exit(phy*)
    function int phy_init(phy*)
    function int phy_mii_ioctl(phy_device*, ifreq*, int)
    function int phy_pm_runtime_get_sync(phy*)
    function int phy_pm_runtime_put_sync(phy*)
    function int phy_power_off(phy*)
    function int phy_power_on(phy*)
    function void phy_print_status(phy_device*)
    function int phy_set_mode_ext(phy*, phy_mode, int)
    function void phy_start(phy_device*)
    function void phy_stop(phy_device*)
    function int pinconf_generic_dt_node_to_map(pinctrl_dev*, device_node*, pinctrl_map**, unsigned int*, pinctrl_map_type)
    function void* pinctrl_dev_get_drvdata(pinctrl_dev*)
    function pinctrl_state* pinctrl_lookup_state(pinctrl*, const char*)
    function int pinctrl_pm_select_default_state(device*)
    function int pinctrl_pm_select_sleep_state(device*)
    function pinctrl_dev* pinctrl_register(pinctrl_desc*, device*, void*)
    function int pinctrl_select_state(pinctrl*, pinctrl_state*)
    function void pinctrl_unregister(pinctrl_dev*)
    function int pinctrl_utils_add_map_configs(pinctrl_dev*, pinctrl_map**, unsigned int*, unsigned int*, const char*, unsigned long int*, unsigned int, pinctrl_map_type)
    function int pinctrl_utils_add_map_mux(pinctrl_dev*, pinctrl_map**, unsigned int*, unsigned int*, const char*, const char*)
    function void pinctrl_utils_free_map(pinctrl_dev*, pinctrl_map*, unsigned int)
    function int pinctrl_utils_reserve_map(pinctrl_dev*, pinctrl_map**, unsigned int*, unsigned int*, unsigned int)
    function int platform_device_add(platform_device*)
    function int platform_device_add_data(platform_device*, void*, size_t)
    function int platform_device_add_properties(platform_device*, const property_entry*)
    function int platform_device_add_resources(platform_device*, const resource*, unsigned int)
    function platform_device* platform_device_alloc(const char*, int)
    function void platform_device_del(platform_device*)
    function void platform_device_put(platform_device*)
    function int platform_device_register(platform_device*)
    function platform_device* platform_device_register_full(const platform_device_info*)
    function void platform_device_unregister(platform_device*)
    function void platform_driver_unregister(platform_driver*)
    function int platform_get_irq(platform_device*, unsigned int)
    function int platform_get_irq_byname(platform_device*, const char*)
    function int platform_get_irq_byname_optional(platform_device*, const char*)
    function resource* platform_get_resource(platform_device*, unsigned int, unsigned int)
    function resource* platform_get_resource_byname(platform_device*, unsigned int, const char*)
    function int platform_irq_count(platform_device*)
    function void platform_unregister_drivers(platform_driver* const*, unsigned int)
    function int pm_genpd_init(generic_pm_domain*, dev_power_governor*, bool)
    function int pm_genpd_remove(generic_pm_domain*)
    function void pm_runtime_allow(device*)
    function void pm_runtime_enable(device*)
    function void pm_runtime_forbid(device*)
    function int pm_runtime_force_resume(device*)
    function int pm_runtime_force_suspend(device*)
    function void pm_runtime_set_autosuspend_delay(device*, int)
    function void pm_wakeup_dev_event(device*, unsigned int, bool)
    function void pm_wakeup_ws_event(wakeup_source*, unsigned int, bool)
    function void power_supply_changed(power_supply*)
    function int power_supply_get_battery_info(power_supply*, power_supply_battery_info*)
    function power_supply* power_supply_get_by_name(const char*)
    function void* power_supply_get_drvdata(power_supply*)
    function int power_supply_get_property(power_supply*, power_supply_property, power_supply_propval*)
    function void power_supply_put(power_supply*)
    function void power_supply_put_battery_info(power_supply*, power_supply_battery_info*)
    function power_supply* power_supply_register(device*, const power_supply_desc*, const power_supply_config*)
    function void power_supply_unregister(power_supply*)
    function int prepare_binprm(linux_binprm*)
    function proc_dir_entry* proc_create(const char*, unsigned short int, proc_dir_entry*, const file_operations*)
    function proc_dir_entry* proc_create_data(const char*, unsigned short int, proc_dir_entry*, const file_operations*, void*)
    function int proto_register(proto*, int)
    function void proto_unregister(proto*)
    function void put_device(device*)
    function void put_disk(gendisk*)
    function void put_tty_driver(tty_driver*)
    function int pwm_apply_state(pwm_device*, const pwm_state*)
    function qcom_smem_state* qcom_smem_state_register(device_node*, const qcom_smem_state_ops*, void*)
    function void qcom_smem_state_unregister(qcom_smem_state*)
    function void* rdev_get_drvdata(regulator_dev*)
    function int register_filesystem(file_system_type*)
    function ctl_table_header* register_net_sysctl(net*, const char*, ctl_table*)
    function int register_netdev(net_device*)
    function int register_netdevice(net_device*)
    function int register_pernet_subsys(pernet_operations*)
    function int register_shrinker(shrinker*)
    function irq_domain* regmap_irq_get_domain(regmap_irq_chip_data*)
    function int regulator_disable_regmap(regulator_dev*)
    function int regulator_enable_regmap(regulator_dev*)
    function regulator* regulator_get(device*, const char*)
    function unsigned int regulator_get_mode(regulator*)
    function int regulator_get_voltage_sel_regmap(regulator_dev*)
    function int regulator_is_enabled(regulator*)
    function int regulator_is_enabled_regmap(regulator_dev*)
    function int regulator_is_supported_voltage(regulator*, int, int)
    function int regulator_list_voltage_linear(regulator_dev*, unsigned int)
    function int regulator_list_voltage_linear_range(regulator_dev*, unsigned int)
    function int regulator_map_voltage_linear(regulator_dev*, int, int)
    function int regulator_notifier_call_chain(regulator_dev*, unsigned long int, void*)
    function regulator_dev* regulator_register(const regulator_desc*, const regulator_config*)
    function int regulator_set_load(regulator*, int)
    function int regulator_set_mode(regulator*, unsigned int)
    function int regulator_set_voltage(regulator*, int, int)
    function int regulator_set_voltage_sel_regmap(regulator_dev*, unsigned int)
    function void regulator_unregister(regulator_dev*)
    function int regulatory_hint(wiphy*, const char*)
    function void release_sock(sock*)
    function int remove_arg_zero(linux_binprm*)
    function int request_firmware(const firmware**, const char*, device*)
    function int request_firmware_direct(const firmware**, const char*, device*)
    function int request_firmware_into_buf(const firmware**, const char*, device*, void*, size_t)
    function int request_firmware_nowait(module*, bool, const char*, device*, gfp_t, void*, void ()*)
    function int revalidate_disk(gendisk*)
    function rfkill* rfkill_alloc(const char*, device*, rfkill_type, const rfkill_ops*, void*)
    function int rpmh_invalidate(const device*)
    function int rpmh_write(const device*, rpmh_state, const tcs_cmd*, unsigned int)
    function int rpmh_write_async(const device*, rpmh_state, const tcs_cmd*, unsigned int)
    function int rpmh_write_batch(const device*, rpmh_state, const tcs_cmd*, u32*)
    function rt6_info* rt6_lookup(net*, const in6_addr*, const in6_addr*, int, const sk_buff*, int)
    function void rtc_update_irq(rtc_device*, unsigned long int, unsigned long int)
    function int rtnl_register_module(module*, int, int, rtnl_doit_func, rtnl_dumpit_func, unsigned int)
    function void sb800_prefetch(device*, int)
    function int scmi_driver_register(scmi_driver*, module*, const char*)
    function void scmi_driver_unregister(scmi_driver*)
    function int scsi_add_host_with_dma(Scsi_Host*, device*, device*)
    function void scsi_eh_prep_cmnd(scsi_cmnd*, scsi_eh_save*, unsigned char*, int, unsigned int)
    function void scsi_eh_restore_cmnd(scsi_cmnd*, scsi_eh_save*)
    function scsi_device* scsi_get_host_dev(Scsi_Host*)
    function Scsi_Host* scsi_host_alloc(scsi_host_template*, int)
    function void scsi_host_put(Scsi_Host*)
    function int scsi_is_host_device(const device*)
    function void scsi_remove_host(Scsi_Host*)
    function void scsi_report_bus_reset(Scsi_Host*, int)
    function void scsi_report_device_reset(Scsi_Host*, int, int)
    function void scsi_scan_host(Scsi_Host*)
    function int sdhci_add_host(sdhci_host*)
    function void sdhci_enable_clk(sdhci_host*, u16)
    function void sdhci_get_property(platform_device*)
    function void sdhci_pltfm_free(platform_device*)
    function sdhci_host* sdhci_pltfm_init(platform_device*, const sdhci_pltfm_data*, size_t)
    function void sdhci_remove_host(sdhci_host*, int)
    function void sdhci_reset(sdhci_host*, u8)
    function void sdhci_set_bus_width(sdhci_host*, int)
    function void sdio_claim_host(sdio_func*)
    function int sdio_enable_func(sdio_func*)
    function int sdio_memcpy_fromio(sdio_func*, void*, unsigned int, int)
    function int sdio_memcpy_toio(sdio_func*, unsigned int, void*, int)
    function u8 sdio_readb(sdio_func*, unsigned int, int*)
    function u32 sdio_readl(sdio_func*, unsigned int, int*)
    function int sdio_readsb(sdio_func*, void*, unsigned int, int)
    function int sdio_register_driver(sdio_driver*)
    function void sdio_release_host(sdio_func*)
    function int sdio_set_block_size(sdio_func*, unsigned int)
    function void sdio_unregister_driver(sdio_driver*)
    function void sdio_writeb(sdio_func*, u8, unsigned int, int*)
    function void sdio_writel(sdio_func*, u32, unsigned int, int*)
    function int sdio_writesb(sdio_func*, unsigned int, void*, int)
    function int search_binary_handler(linux_binprm*)
    function long long int seq_lseek(file*, long long int, int)
    function int seq_open_private(file*, const seq_operations*, int)
    function void seq_printf(seq_file*, const char*, ...)
    function void seq_putc(seq_file*, char)
    function void seq_puts(seq_file*, const char*)
    function ssize_t seq_read(file*, char*, size_t, loff_t*)
    function int seq_release(inode*, file*)
    function void seq_vprintf(seq_file*, const char*, __va_list)
    function void serdev_device_close(serdev_device*)
    function int serdev_device_open(serdev_device*)
    function unsigned int serdev_device_set_baudrate(serdev_device*, unsigned int)
    function void serdev_device_set_flow_control(serdev_device*, bool)
    function int serdev_device_set_tiocm(serdev_device*, int, int)
    function void serdev_device_wait_until_sent(serdev_device*, long int)
    function int serdev_device_write(serdev_device*, const unsigned char*, size_t, long int)
    function int serdev_device_write_buf(serdev_device*, const unsigned char*, size_t)
    function void serdev_device_write_flush(serdev_device*)
    function void serdev_device_write_wakeup(serdev_device*)
    function void set_disk_ro(gendisk*, int)
    function file* shmem_file_setup(const char*, long long int, unsigned long int)
    function page* shmem_read_mapping_page_gfp(address_space*, unsigned long int, unsigned int)
    function void shmem_truncate_range(inode*, loff_t, loff_t)
    function int simple_attr_open(inode*, file*, void ()*, void ()*, const char*)
    function ssize_t simple_attr_read(file*, char*, size_t, loff_t*)
    function int simple_attr_release(inode*, file*)
    function ssize_t simple_attr_write(file*, const char*, size_t, loff_t*)
    function int simple_fill_super(super_block*, unsigned long int, const tree_descr*)
    function int simple_open(inode*, file*)
    function int simple_pin_fs(file_system_type*, vfsmount**, int*)
    function void simple_release_fs(vfsmount**, int*)
    function int simple_statfs(dentry*, kstatfs*)
    function int single_open(file*, void ()*, void*)
    function int single_release(inode*, file*)
    function sock* sk_alloc(net*, int, unsigned int, proto*, int)
    function void sk_free(sock*)
    function int skb_copy_datagram_iter(const sk_buff*, int, iov_iter*, int)
    function void skb_free_datagram(sock*, sk_buff*)
    function sk_buff* skb_recv_datagram(sock*, unsigned int, int, int*)
    function void skb_set_owner_w(sk_buff*, sock*)
    function int snd_card_disconnect(snd_card*)
    function int snd_card_free(snd_card*)
    function int snd_card_new(device*, int, const char*, module*, int, snd_card**)
    function int snd_card_register(snd_card*)
    function int snd_card_rw_proc_new(snd_card*, const char*, void*, void ()*, void ()*)
    function int snd_component_add(snd_card*, const char*)
    function int snd_ctl_add(snd_card*, snd_kcontrol*)
    function snd_kcontrol* snd_ctl_find_id(snd_card*, snd_ctl_elem_id*)
    function int snd_ctl_remove_id(snd_card*, snd_ctl_elem_id*)
    function int snd_device_new(snd_card*, snd_device_type, void*, snd_device_ops*)
    function int snd_dma_alloc_pages(int, device*, unsigned long int, snd_dma_buffer*)
    function void snd_dma_free_pages(snd_dma_buffer*)
    function snd_info_entry* snd_info_create_card_entry(snd_card*, const char*, snd_info_entry*)
    function void snd_info_free_entry(snd_info_entry*)
    function int snd_info_register(snd_info_entry*)
    function int snd_jack_set_key(snd_jack*, snd_jack_types, int)
    function const snd_pci_quirk* snd_pci_quirk_lookup(pci_dev*, const snd_pci_quirk*)
    function int snd_pcm_add_chmap_ctls(snd_pcm*, int, const snd_pcm_chmap_elem*, int, unsigned long int, snd_pcm_chmap**)
    function int snd_pcm_hw_constraint_eld(snd_pcm_runtime*, void*)
    function int snd_pcm_hw_constraint_integer(snd_pcm_runtime*, int)
    function int snd_pcm_hw_constraint_list(snd_pcm_runtime*, unsigned int, snd_pcm_hw_param_t, const snd_pcm_hw_constraint_list*)
    function int snd_pcm_hw_constraint_minmax(snd_pcm_runtime*, int, unsigned int, unsigned int)
    function int snd_pcm_hw_constraint_msbits(snd_pcm_runtime*, unsigned int, unsigned int, unsigned int)
    function int snd_pcm_hw_constraint_step(snd_pcm_runtime*, unsigned int, snd_pcm_hw_param_t, unsigned long int)
    function int snd_pcm_hw_rule_add(snd_pcm_runtime*, unsigned int, int, void ()*, void*, int, ...)
    function int snd_pcm_lib_free_pages(snd_pcm_substream*)
    function int snd_pcm_lib_ioctl(snd_pcm_substream*, unsigned int, void*)
    function int snd_pcm_lib_malloc_pages(snd_pcm_substream*, size_t)
    function void snd_pcm_lib_preallocate_pages_for_all(snd_pcm*, int, void*, unsigned long int, unsigned long int)
    function int snd_pcm_limit_hw_rates(snd_pcm_runtime*)
    function int snd_pcm_new(snd_card*, const char*, int, int, int, snd_pcm**)
    function void snd_pcm_period_elapsed(snd_pcm_substream*)
    function void snd_pcm_set_ops(snd_pcm*, int, const snd_pcm_ops*)
    function int snd_soc_card_jack_new(snd_soc_card*, const char*, int, snd_soc_jack*, snd_soc_jack_pin*, unsigned int)
    function unsigned int snd_soc_component_read32(snd_soc_component*, unsigned int)
    function int snd_soc_component_update_bits(snd_soc_component*, unsigned int, unsigned int, unsigned int)
    function int snd_soc_component_write(snd_soc_component*, unsigned int, unsigned int)
    function int snd_soc_dapm_add_routes(snd_soc_dapm_context*, const snd_soc_dapm_route*, int)
    function int snd_soc_dapm_disable_pin(snd_soc_dapm_context*, const char*)
    function int snd_soc_dapm_enable_pin(snd_soc_dapm_context*, const char*)
    function int snd_soc_dapm_force_enable_pin(snd_soc_dapm_context*, const char*)
    function int snd_soc_dapm_ignore_suspend(snd_soc_dapm_context*, const char*)
    function snd_soc_dapm_context* snd_soc_dapm_kcontrol_dapm(snd_kcontrol*)
    function int snd_soc_dapm_sync(snd_soc_dapm_context*)
    function void snd_soc_jack_report(snd_soc_jack*, int, int)
    function int snd_soc_of_get_dai_name(device_node*, const char**)
    function int snd_soc_of_parse_audio_routing(snd_soc_card*, const char*)
    function int snd_soc_of_parse_audio_simple_widgets(snd_soc_card*, const char*)
    function int snd_soc_of_parse_card_name(snd_soc_card*, const char*)
    function unsigned int snd_soc_of_parse_daifmt(device_node*, const char*, device_node**, device_node**)
    function int snd_soc_of_parse_tdm_slot(device_node*, unsigned int*, unsigned int*, unsigned int*, unsigned int*)
    function int snd_soc_register_component(device*, const snd_soc_component_driver*, snd_soc_dai_driver*, int)
    function snd_soc_component* snd_soc_rtdcom_lookup(snd_soc_pcm_runtime*, const char*)
    function int snd_soc_set_runtime_hwparams(snd_pcm_substream*, const snd_pcm_hardware*)
    function void snd_soc_unregister_component(device*)
    function sk_buff* sock_alloc_send_skb(sock*, unsigned long int, int, int*)
    function int sock_diag_register(const sock_diag_handler*)
    function void sock_diag_save_cookie(sock*, unsigned int*)
    function void sock_diag_unregister(const sock_diag_handler*)
    function int sock_gettstamp(socket*, void*, bool, bool)
    function unsigned long int sock_i_ino(sock*)
    function void sock_init_data(socket*, sock*)
    function int sock_no_accept(socket*, socket*, int, bool)
    function int sock_no_getsockopt(socket*, int, int, char*, int*)
    function int sock_no_ioctl(socket*, unsigned int, unsigned long int)
    function int sock_no_listen(socket*, int)
    function int sock_no_mmap(file*, socket*, vm_area_struct*)
    function long int sock_no_sendpage(socket*, page*, int, unsigned long int, int)
    function int sock_no_setsockopt(socket*, int, int, char*, unsigned int)
    function int sock_no_shutdown(socket*, int)
    function int sock_no_socketpair(socket*, socket*)
    function int sock_queue_rcv_skb(sock*, sk_buff*)
    function int sock_register(const net_proto_family*)
    function int spi_sync(spi_device*, spi_message*)
    function int spmi_controller_add(spmi_controller*)
    function spmi_controller* spmi_controller_alloc(device*, size_t)
    function void spmi_controller_remove(spmi_controller*)
    function int spmi_ext_register_read(spmi_device*, u8, u8*, size_t)
    function int spmi_ext_register_readl(spmi_device*, u16, u8*, size_t)
    function int spmi_ext_register_write(spmi_device*, u8, const u8*, size_t)
    function int spmi_ext_register_writel(spmi_device*, u16, const u8*, size_t)
    function int spmi_register_read(spmi_device*, u8, u8*)
    function int spmi_register_write(spmi_device*, u8, u8)
    function int spmi_register_zero_write(spmi_device*, u8)
    function int stream_open(inode*, file*)
    function unsigned int submit_bio(bio*)
    function sync_file* sync_file_create(dma_fence*)
    function regmap* syscon_node_to_regmap(device_node*)
    function regmap* syscon_regmap_lookup_by_phandle(device_node*, const char*)
    function regmap* syscon_regmap_lookup_by_phandle_args(device_node*, const char*, int, unsigned int*)
    function int trace_define_field(trace_event_call*, const char*, const char*, int, int, int, int)
    function void trace_event_buffer_commit(trace_event_buffer*)
    function void* trace_event_buffer_reserve(trace_event_buffer*, trace_event_file*, unsigned long int)
    function bool trace_event_ignore_this_pid(trace_event_file*)
    function int trace_event_raw_init(trace_event_call*)
    function int trace_event_reg(trace_event_call*, trace_reg, void*)
    function bool try_module_get(module*)
    function void tty_driver_flush_buffer(tty_struct*)
    function void tty_flip_buffer_push(tty_port*)
    function void tty_hangup(tty_struct*)
    function int tty_insert_flip_string_fixed_flag(tty_port*, const unsigned char*, char, unsigned long int)
    function void tty_kref_put(tty_struct*)
    function void tty_ldisc_deref(tty_ldisc*)
    function void tty_ldisc_flush(tty_struct*)
    function tty_ldisc* tty_ldisc_ref(tty_struct*)
    function void tty_port_close(tty_port*, tty_struct*, file*)
    function void tty_port_destroy(tty_port*)
    function void tty_port_hangup(tty_port*)
    function void tty_port_init(tty_port*)
    function void tty_port_link_device(tty_port*, tty_driver*, unsigned int)
    function int tty_port_open(tty_port*, tty_struct*, file*)
    function void tty_port_put(tty_port*)
    function device* tty_port_register_device(tty_port*, tty_driver*, unsigned int, device*)
    function tty_struct* tty_port_tty_get(tty_port*)
    function void tty_port_tty_hangup(tty_port*, bool)
    function void tty_port_tty_wakeup(tty_port*)
    function int tty_register_driver(tty_driver*)
    function int tty_register_ldisc(int, tty_ldisc_ops*)
    function void tty_schedule_flip(tty_port*)
    function void tty_set_operations(tty_driver*, const tty_operations*)
    function int tty_set_termios(tty_struct*, ktermios*)
    function int tty_standard_install(tty_driver*, tty_struct*)
    function void tty_unregister_device(tty_driver*, unsigned int)
    function int tty_unregister_driver(tty_driver*)
    function void tty_unthrottle(tty_struct*)
    function void tty_vhangup(tty_struct*)
    function int uart_add_one_port(uart_driver*, uart_port*)
    function tty_driver* uart_console_device(console*, int*)
    function void uart_console_write(uart_port*, const char*, unsigned int, void ()*)
    function unsigned int uart_get_baud_rate(uart_port*, ktermios*, ktermios*, unsigned int, unsigned int)
    function int uart_register_driver(uart_driver*)
    function int uart_remove_one_port(uart_driver*, uart_port*)
    function int uart_resume_port(uart_driver*, uart_port*)
    function int uart_set_options(uart_port*, console*, int, int, int, int)
    function int uart_suspend_port(uart_driver*, uart_port*)
    function void uart_unregister_driver(uart_driver*)
    function void uart_update_timeout(uart_port*, unsigned int, unsigned int)
    function void uart_write_wakeup(uart_port*)
    function int ufshcd_dme_get_attr(ufs_hba*, u32, u32*, u8)
    function int ufshcd_dme_set_attr(ufs_hba*, u32, u8, u32, u8)
    function int ufshcd_dump_regs(ufs_hba*, size_t, size_t, const char*)
    function u32 ufshcd_get_local_unipro_ver(ufs_hba*)
    function int ufshcd_hold(ufs_hba*, bool)
    function int ufshcd_pltfrm_init(platform_device*, const ufs_hba_variant_ops*)
    function int ufshcd_pltfrm_resume(device*)
    function int ufshcd_pltfrm_runtime_idle(device*)
    function int ufshcd_pltfrm_runtime_resume(device*)
    function int ufshcd_pltfrm_runtime_suspend(device*)
    function void ufshcd_pltfrm_shutdown(platform_device*)
    function int ufshcd_pltfrm_suspend(device*)
    function void ufshcd_release(ufs_hba*)
    function void ufshcd_remove(ufs_hba*)
    function int ufshcd_uic_hibern8_enter(ufs_hba*)
    function int ufshcd_uic_hibern8_exit(ufs_hba*)
    function void unmap_mapping_range(address_space*, long long int, long long int, int)
    function int unregister_filesystem(file_system_type*)
    function void unregister_netdev(net_device*)
    function void unregister_netdevice_queue(net_device*, list_head*)
    function void unregister_pernet_subsys(pernet_operations*)
    function void unregister_shrinker(shrinker*)
    function int usb_add_gadget_udc(device*, usb_gadget*)
    function int usb_add_hcd(usb_hcd*, unsigned int, unsigned long int)
    function void* usb_alloc_coherent(usb_device*, unsigned long int, unsigned int, long long unsigned int*)
    function urb* usb_alloc_urb(int, unsigned int)
    function bool usb_amd_pt_check_port(device*, int)
    function void usb_anchor_urb(urb*, usb_anchor*)
    function void usb_asmedia_modifyflowcontrol(pci_dev*)
    function int usb_autopm_get_interface(usb_interface*)
    function int usb_autopm_get_interface_async(usb_interface*)
    function void usb_autopm_get_interface_no_resume(usb_interface*)
    function void usb_autopm_put_interface(usb_interface*)
    function void usb_autopm_put_interface_async(usb_interface*)
    function void usb_autopm_put_interface_no_suspend(usb_interface*)
    function int usb_clear_halt(usb_device*, int)
    function int usb_control_msg(usb_device*, unsigned int, unsigned char, unsigned char, unsigned short int, unsigned short int, void*, unsigned short int, int)
    function usb_hcd* usb_create_hcd(const hc_driver*, device*, const char*)
    function usb_hcd* usb_create_shared_hcd(const hc_driver*, device*, const char*, usb_hcd*)
    function void usb_del_gadget_udc(usb_gadget*)
    function void usb_deregister(usb_driver*)
    function void usb_disable_xhci_ports(pci_dev*)
    function int usb_driver_claim_interface(usb_driver*, usb_interface*, void*)
    function void usb_driver_release_interface(usb_driver*, usb_interface*)
    function void usb_enable_intel_xhci_ports(pci_dev*)
    function int usb_for_each_dev(void*, void ()*)
    function void usb_free_coherent(usb_device*, unsigned long int, void*, long long unsigned int)
    function void usb_free_urb(urb*)
    function int usb_gadget_map_request_by_dev(device*, usb_request*, int)
    function void usb_gadget_set_state(usb_gadget*, usb_device_state)
    function void usb_gadget_udc_reset(usb_gadget*, usb_gadget_driver*)
    function void usb_gadget_unmap_request_by_dev(device*, usb_request*, int)
    function usb_device* usb_get_dev(usb_device*)
    function usb_dr_mode usb_get_dr_mode(device*)
    function urb* usb_get_from_anchor(usb_anchor*)
    function usb_interface* usb_get_intf(usb_interface*)
    function usb_device_speed usb_get_maximum_speed(device*)
    function void usb_hc_died(usb_hcd*)
    function int usb_hcd_check_unlink_urb(usb_hcd*, urb*, int)
    function void usb_hcd_end_port_resume(usb_bus*, int)
    function void usb_hcd_giveback_urb(usb_hcd*, urb*, int)
    function int usb_hcd_is_primary_hcd(usb_hcd*)
    function int usb_hcd_link_urb_to_ep(usb_hcd*, urb*)
    function int usb_hcd_map_urb_for_dma(usb_hcd*, urb*, gfp_t)
    function int usb_hcd_pci_probe(pci_dev*, const pci_device_id*)
    function void usb_hcd_pci_remove(pci_dev*)
    function void usb_hcd_pci_shutdown(pci_dev*)
    function void usb_hcd_platform_shutdown(platform_device*)
    function void usb_hcd_poll_rh_status(usb_hcd*)
    function void usb_hcd_resume_root_hub(usb_hcd*)
    function void usb_hcd_start_port_resume(usb_bus*, int)
    function void usb_hcd_unlink_urb_from_ep(usb_hcd*, urb*)
    function void usb_hcd_unmap_urb_for_dma(usb_hcd*, urb*)
    function int usb_hub_clear_tt_buffer(urb*)
    function usb_interface* usb_ifnum_to_if(const usb_device*, unsigned int)
    function void usb_kill_urb(urb*)
    function int usb_lock_device_for_reset(usb_device*, const usb_interface*)
    function const usb_device_id* usb_match_id(usb_interface*, const usb_device_id*)
    function int usb_match_one_id(usb_interface*, const usb_device_id*)
    function device* usb_of_get_companion_dev(device*)
    function void usb_poison_urb(urb*)
    function void usb_put_dev(usb_device*)
    function void usb_put_hcd(usb_hcd*)
    function void usb_put_intf(usb_interface*)
    function int usb_register_driver(usb_driver*, module*, const char*)
    function void usb_remove_hcd(usb_hcd*)
    function int usb_reset_device(usb_device*)
    function void usb_reset_endpoint(usb_device*, unsigned int)
    function void usb_root_hub_lost_power(usb_device*)
    function void usb_sg_cancel(usb_sg_request*)
    function int usb_sg_init(usb_sg_request*, usb_device*, unsigned int, unsigned int, scatterlist*, int, size_t, gfp_t)
    function void usb_sg_wait(usb_sg_request*)
    function ssize_t usb_store_new_id(usb_dynids*, const usb_device_id*, device_driver*, const char*, size_t)
    function int usb_submit_urb(urb*, unsigned int)
    function int usb_unlink_urb(urb*)
    function void usb_unpoison_urb(urb*)
    function void usb_wakeup_notification(usb_device*, unsigned int)
    function int usbnet_change_mtu(net_device*, int)
    function void usbnet_disconnect(usb_interface*)
    function void usbnet_get_drvinfo(net_device*, ethtool_drvinfo*)
    function int usbnet_get_endpoints(usbnet*, usb_interface*)
    function u32 usbnet_get_link(net_device*)
    function int usbnet_get_link_ksettings(net_device*, ethtool_link_ksettings*)
    function u32 usbnet_get_msglevel(net_device*)
    function void usbnet_get_stats64(net_device*, rtnl_link_stats64*)
    function void usbnet_link_change(usbnet*, bool, bool)
    function int usbnet_nway_reset(net_device*)
    function int usbnet_open(net_device*)
    function int usbnet_probe(usb_interface*, const usb_device_id*)
    function int usbnet_read_cmd(usbnet*, u8, u8, u16, u16, void*, u16)
    function int usbnet_read_cmd_nopm(usbnet*, u8, u8, u16, u16, void*, u16)
    function int usbnet_resume(usb_interface*)
    function int usbnet_set_link_ksettings(net_device*, const ethtool_link_ksettings*)
    function void usbnet_set_msglevel(net_device*, u32)
    function void usbnet_skb_return(usbnet*, sk_buff*)
    function netdev_tx_t usbnet_start_xmit(sk_buff*, net_device*)
    function int usbnet_stop(net_device*)
    function int usbnet_suspend(usb_interface*, pm_message_t)
    function void usbnet_tx_timeout(net_device*)
    function void usbnet_unlink_rx_urbs(usbnet*)
    function void usbnet_update_max_qlen(usbnet*)
    function int usbnet_write_cmd(usbnet*, u8, u8, u16, u16, void*, u16)
    function int usbnet_write_cmd_async(usbnet*, u8, u8, u16, u16, void*, u16)
    function int usbnet_write_cmd_nopm(usbnet*, u8, u8, u16, u16, void*, u16)
    function int vfs_getattr(const path*, kstat*, u32, unsigned int)
    function long long int vfs_llseek(file*, long long int, int)
    function long int vfs_read(file*, char*, unsigned long int, long long int*)
    function long int vfs_write(file*, const char*, unsigned long int, long long int*)
    function void wakeup_source_add(wakeup_source*)
    function wakeup_source* wakeup_source_create(const char*)
    function void wakeup_source_destroy(wakeup_source*)
    function wakeup_source* wakeup_source_register(device*, const char*)
    function void wakeup_source_remove(wakeup_source*)
    function void wakeup_source_unregister(wakeup_source*)
    function void wiphy_free(wiphy*)
    function wiphy* wiphy_new_nm(const cfg80211_ops*, int, const char*)
    function int wiphy_register(wiphy*)
    function void wiphy_unregister(wiphy*)
    function void would_dump(linux_binprm*, file*)
    function xdp_frame* xdp_convert_zc_to_xdp_frame(xdp_buff*)
    function int xdp_do_redirect(net_device*, xdp_buff*, bpf_prog*)
    function void xdp_return_frame(xdp_frame*)
    function void xdp_return_frame_rx_napi(xdp_frame*)
    function int xdp_rxq_info_reg(xdp_rxq_info*, net_device*, unsigned int)
    function int xdp_rxq_info_reg_mem_model(xdp_rxq_info*, xdp_mem_type, void*)
    function void xdp_rxq_info_unreg(xdp_rxq_info*)
    function dst_entry* xfrm_lookup(net*, dst_entry*, const flowi*, const sock*, int)

'struct ufs_dev_info at ufs.h:530:1' changed:
  type size changed from 64 to 192 (in bits)
  2 data member insertions:
    'u16 ufs_dev_info::wmanufacturerid', at offset 16 (in bits) at ufs.h:534:1
    'u8* ufs_dev_info::model', at offset 64 (in bits) at ufs.h:536:1
  there are data member changes:
   'u16 ufs_dev_info::spec_version' offset changed from 16 to 128 (in bits) (by +112 bits)
   'u32 ufs_dev_info::clk_gating_wait_us' offset changed from 32 to 160 (in bits) (by +128 bits)

  10 impacted interfaces:
    function int ufshcd_dme_get_attr(ufs_hba*, u32, u32*, u8)
    function int ufshcd_dme_set_attr(ufs_hba*, u32, u8, u32, u8)
    function int ufshcd_dump_regs(ufs_hba*, size_t, size_t, const char*)
    function u32 ufshcd_get_local_unipro_ver(ufs_hba*)
    function int ufshcd_hold(ufs_hba*, bool)
    function int ufshcd_pltfrm_init(platform_device*, const ufs_hba_variant_ops*)
    function void ufshcd_release(ufs_hba*)
    function void ufshcd_remove(ufs_hba*)
    function int ufshcd_uic_hibern8_enter(ufs_hba*)
    function int ufshcd_uic_hibern8_exit(ufs_hba*)

'struct ufs_hba at ufshcd.h:559:1' changed:
  type size changed from 27520 to 27648 (in bits)
  there are data member changes:
   type 'struct ufs_dev_info' of 'ufs_hba::dev_info' changed as reported earlier
   and size changed from 64 to 192 (in bits) (by +128 bits)
   'bool ufs_hba::auto_bkops_enabled' offset changed from 16000 to 16128 (in bits) (by +128 bits)
   'ufs_vreg_info ufs_hba::vreg_info' offset changed from 16064 to 16192 (in bits) (by +128 bits)
   'list_head ufs_hba::clk_list_head' offset changed from 16320 to 16448 (in bits) (by +128 bits)
   'bool ufs_hba::wlun_dev_clr_ua' offset changed from 16448 to 16576 (in bits) (by +128 bits)
   'int ufs_hba::req_abort_count' offset changed from 16480 to 16608 (in bits) (by +128 bits)
   'u32 ufs_hba::lanes_per_direction' offset changed from 16512 to 16640 (in bits) (by +128 bits)
   'ufs_pa_layer_attr ufs_hba::pwr_info' offset changed from 16544 to 16672 (in bits) (by +128 bits)
   'ufs_pwr_mode_info ufs_hba::max_pwr_info' offset changed from 16768 to 16896 (in bits) (by +128 bits)
   'ufs_clk_gating ufs_hba::clk_gating' offset changed from 17024 to 17152 (in bits) (by +128 bits)
   'u32 ufs_hba::caps' offset changed from 18816 to 18944 (in bits) (by +128 bits)
   'devfreq* ufs_hba::devfreq' offset changed from 18880 to 19008 (in bits) (by +128 bits)
   'ufs_clk_scaling ufs_hba::clk_scaling' offset changed from 18944 to 19072 (in bits) (by +128 bits)
   'bool ufs_hba::is_sys_suspended' offset changed from 20352 to 20480 (in bits) (by +128 bits)
   'bkops_status ufs_hba::urgent_bkops_lvl' offset changed from 20384 to 20512 (in bits) (by +128 bits)
   'bool ufs_hba::is_urgent_bkops_lvl_checked' offset changed from 20416 to 20544 (in bits) (by +128 bits)
   'rw_semaphore ufs_hba::clk_scaling_lock' offset changed from 20480 to 20608 (in bits) (by +128 bits)
   'ufs_desc_size ufs_hba::desc_size' offset changed from 20800 to 20928 (in bits) (by +128 bits)
   'atomic_t ufs_hba::scsi_block_reqs_cnt' offset changed from 21024 to 21152 (in bits) (by +128 bits)
   'device ufs_hba::bsg_dev' offset changed from 21056 to 21184 (in bits) (by +128 bits)
   'request_queue* ufs_hba::bsg_queue' offset changed from 27200 to 27328 (in bits) (by +128 bits)
   'ufs_crypto_capabilities ufs_hba::crypto_capabilities' offset changed from 27264 to 27392 (in bits) (by +128 bits)
   'ufs_crypto_cap_entry* ufs_hba::crypto_cap_array' offset changed from 27328 to 27456 (in bits) (by +128 bits)
   'u32 ufs_hba::crypto_cfg_register' offset changed from 27392 to 27520 (in bits) (by +128 bits)
   'keyslot_manager* ufs_hba::ksm' offset changed from 27456 to 27584 (in bits) (by +128 bits)

  10 impacted interfaces:
    function int ufshcd_dme_get_attr(ufs_hba*, u32, u32*, u8)
    function int ufshcd_dme_set_attr(ufs_hba*, u32, u8, u32, u8)
    function int ufshcd_dump_regs(ufs_hba*, size_t, size_t, const char*)
    function u32 ufshcd_get_local_unipro_ver(ufs_hba*)
    function int ufshcd_hold(ufs_hba*, bool)
    function int ufshcd_pltfrm_init(platform_device*, const ufs_hba_variant_ops*)
    function void ufshcd_release(ufs_hba*)
    function void ufshcd_remove(ufs_hba*)
    function int ufshcd_uic_hibern8_enter(ufs_hba*)
    function int ufshcd_uic_hibern8_exit(ufs_hba*)

Bug: 149659981
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Ie0a8e835bca8c7111f74440b1a44680856aae182
2020-03-04 14:29:00 -08:00
Todd Kjos
f305a5bbd3 ANDROID: update ABI for CONFIG_IIO_* changes
Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 2 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct ufs_hba at ufshcd.h:558:1' changed:
  type size changed from 27456 to 27520 (in bits)
  1 data member insertion:
    'size_t ufs_hba::sg_entry_size', at offset 1920 (in bits) at ufshcd.h:606:1
  there are data member changes:
   'unsigned int ufs_hba::irq' offset changed from 1920 to 1984 (in bits) (by +64 bits)
   'bool ufs_hba::is_irq_enabled' offset changed from 1952 to 2016 (in bits) (by +64 bits)
   'ufs_ref_clk_freq ufs_hba::dev_ref_clk_freq' offset changed from 1984 to 2048 (in bits) (by +64 bits)
   'unsigned int ufs_hba::quirks' offset changed from 2016 to 2080 (in bits) (by +64 bits)
   'unsigned int ufs_hba::dev_quirks' offset changed from 2048 to 2112 (in bits) (by +64 bits)
   'wait_queue_head_t ufs_hba::tm_wq' offset changed from 2112 to 2176 (in bits) (by +64 bits)
   'wait_queue_head_t ufs_hba::tm_tag_wq' offset changed from 2304 to 2368 (in bits) (by +64 bits)
   'unsigned long int ufs_hba::tm_condition' offset changed from 2496 to 2560 (in bits) (by +64 bits)
   'unsigned long int ufs_hba::tm_slots_in_use' offset changed from 2560 to 2624 (in bits) (by +64 bits)
   'uic_command* ufs_hba::active_uic_cmd' offset changed from 2624 to 2688 (in bits) (by +64 bits)
   'mutex ufs_hba::uic_cmd_mutex' offset changed from 2688 to 2752 (in bits) (by +64 bits)
   'completion* ufs_hba::uic_async_done' offset changed from 2944 to 3008 (in bits) (by +64 bits)
   'u32 ufs_hba::ufshcd_state' offset changed from 3008 to 3072 (in bits) (by +64 bits)
   'u32 ufs_hba::eh_flags' offset changed from 3040 to 3104 (in bits) (by +64 bits)
   'u32 ufs_hba::intr_mask' offset changed from 3072 to 3136 (in bits) (by +64 bits)
   'u16 ufs_hba::ee_ctrl_mask' offset changed from 3104 to 3168 (in bits) (by +64 bits)
   'bool ufs_hba::is_powered' offset changed from 3120 to 3184 (in bits) (by +64 bits)
   'work_struct ufs_hba::eh_work' offset changed from 3136 to 3200 (in bits) (by +64 bits)
   'work_struct ufs_hba::eeh_work' offset changed from 3392 to 3456 (in bits) (by +64 bits)
   'u32 ufs_hba::errors' offset changed from 3648 to 3712 (in bits) (by +64 bits)
   'u32 ufs_hba::uic_error' offset changed from 3680 to 3744 (in bits) (by +64 bits)
   'u32 ufs_hba::saved_err' offset changed from 3712 to 3776 (in bits) (by +64 bits)
   'u32 ufs_hba::saved_uic_err' offset changed from 3744 to 3808 (in bits) (by +64 bits)
   'ufs_stats ufs_hba::ufs_stats' offset changed from 3776 to 3840 (in bits) (by +64 bits)
   'bool ufs_hba::silence_err_logs' offset changed from 14720 to 14784 (in bits) (by +64 bits)
   'ufs_dev_cmd ufs_hba::dev_cmd' offset changed from 14784 to 14848 (in bits) (by +64 bits)
   'ktime_t ufs_hba::last_dme_cmd_tstamp' offset changed from 15808 to 15872 (in bits) (by +64 bits)
   'ufs_dev_info ufs_hba::dev_info' offset changed from 15872 to 15936 (in bits) (by +64 bits)
   'bool ufs_hba::auto_bkops_enabled' offset changed from 15936 to 16000 (in bits) (by +64 bits)
   'ufs_vreg_info ufs_hba::vreg_info' offset changed from 16000 to 16064 (in bits) (by +64 bits)
   'list_head ufs_hba::clk_list_head' offset changed from 16256 to 16320 (in bits) (by +64 bits)
   'bool ufs_hba::wlun_dev_clr_ua' offset changed from 16384 to 16448 (in bits) (by +64 bits)
   'int ufs_hba::req_abort_count' offset changed from 16416 to 16480 (in bits) (by +64 bits)
   'u32 ufs_hba::lanes_per_direction' offset changed from 16448 to 16512 (in bits) (by +64 bits)
   'ufs_pa_layer_attr ufs_hba::pwr_info' offset changed from 16480 to 16544 (in bits) (by +64 bits)
   'ufs_pwr_mode_info ufs_hba::max_pwr_info' offset changed from 16704 to 16768 (in bits) (by +64 bits)
   'ufs_clk_gating ufs_hba::clk_gating' offset changed from 16960 to 17024 (in bits) (by +64 bits)
   'u32 ufs_hba::caps' offset changed from 18752 to 18816 (in bits) (by +64 bits)
   'devfreq* ufs_hba::devfreq' offset changed from 18816 to 18880 (in bits) (by +64 bits)
   'ufs_clk_scaling ufs_hba::clk_scaling' offset changed from 18880 to 18944 (in bits) (by +64 bits)
   'bool ufs_hba::is_sys_suspended' offset changed from 20288 to 20352 (in bits) (by +64 bits)
   'bkops_status ufs_hba::urgent_bkops_lvl' offset changed from 20320 to 20384 (in bits) (by +64 bits)
   'bool ufs_hba::is_urgent_bkops_lvl_checked' offset changed from 20352 to 20416 (in bits) (by +64 bits)
   'rw_semaphore ufs_hba::clk_scaling_lock' offset changed from 20416 to 20480 (in bits) (by +64 bits)
   'ufs_desc_size ufs_hba::desc_size' offset changed from 20736 to 20800 (in bits) (by +64 bits)
   'atomic_t ufs_hba::scsi_block_reqs_cnt' offset changed from 20960 to 21024 (in bits) (by +64 bits)
   'device ufs_hba::bsg_dev' offset changed from 20992 to 21056 (in bits) (by +64 bits)
   'request_queue* ufs_hba::bsg_queue' offset changed from 27136 to 27200 (in bits) (by +64 bits)
   'ufs_crypto_capabilities ufs_hba::crypto_capabilities' offset changed from 27200 to 27264 (in bits) (by +64 bits)
   'ufs_crypto_cap_entry* ufs_hba::crypto_cap_array' offset changed from 27264 to 27328 (in bits) (by +64 bits)
   'u32 ufs_hba::crypto_cfg_register' offset changed from 27328 to 27392 (in bits) (by +64 bits)
   'keyslot_manager* ufs_hba::ksm' offset changed from 27392 to 27456 (in bits) (by +64 bits)

  10 impacted interfaces:
    function int ufshcd_dme_get_attr(ufs_hba*, u32, u32*, u8)
    function int ufshcd_dme_set_attr(ufs_hba*, u32, u8, u32, u8)
    function int ufshcd_dump_regs(ufs_hba*, size_t, size_t, const char*)
    function u32 ufshcd_get_local_unipro_ver(ufs_hba*)
    function int ufshcd_hold(ufs_hba*, bool)
    function int ufshcd_pltfrm_init(platform_device*, const ufs_hba_variant_ops*)
    function void ufshcd_release(ufs_hba*)
    function void ufshcd_remove(ufs_hba*)
    function int ufshcd_uic_hibern8_enter(ufs_hba*)
    function int ufshcd_uic_hibern8_exit(ufs_hba*)

'struct utp_transfer_cmd_desc at ufshci.h:453:1' changed:
  type size changed from 24576 to 8192 (in bits)
  there are data member changes:
   type 'ufshcd_sg_entry[128]' of 'utp_transfer_cmd_desc::prd_table' changed:
     type name changed from 'ufshcd_sg_entry[128]' to 'u8[]'
     array type size changed from 16384 to infinity
     array type subrange 1 changed length from 128 to infinity
     array element type 'struct ufshcd_sg_entry' changed:
       entity changed from 'struct ufshcd_sg_entry' to 'typedef u8' at int-ll64.h:17:1
       type size changed from 128 to 8 (in bits)
   and size changed from 16384 to 0 (in bits) (by -16384 bits)

  10 impacted interfaces:
    function int ufshcd_dme_get_attr(ufs_hba*, u32, u32*, u8)
    function int ufshcd_dme_set_attr(ufs_hba*, u32, u8, u32, u8)
    function int ufshcd_dump_regs(ufs_hba*, size_t, size_t, const char*)
    function u32 ufshcd_get_local_unipro_ver(ufs_hba*)
    function int ufshcd_hold(ufs_hba*, bool)
    function int ufshcd_pltfrm_init(platform_device*, const ufs_hba_variant_ops*)
    function void ufshcd_release(ufs_hba*)
    function void ufshcd_remove(ufs_hba*)
    function int ufshcd_uic_hibern8_enter(ufs_hba*)
    function int ufshcd_uic_hibern8_exit(ufs_hba*)

Bug: 150277239
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: I02449d5012734c78510d316eb2bacf736414fecc
2020-03-04 02:01:55 +00:00
Liangcai Fan
746839d41f ANDROID: ABI/Whitelist: update for unisoc
This adds a whitelist for the symbols used by the unisoc device and
updates the ABI representation accordingly.

Leaf changes summary: 506 artifacts changed (3 filtered out)
Changed leaf types summary: 0 (3 filtered out) leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 506 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

Bug: 147075469
Change-Id: Idf591495987c8a984213eba1349747d825c6889f
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
2020-02-27 16:51:29 +08:00
Suren Baghdasaryan
3a4723a936 ANDROID: gki_defconfig: Disable CONFIG_RT_GROUP_SCHED
Disable CONFIG_RT_GROUP_SCHED to control RT cpu allowance globally.

ABI update report:

 ABI DIFFERENCES HAVE BEEN DETECTED! (RC=8)
========================================================
Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 2 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct sched_rt_entity at sched.h:481:1' changed:
  type size changed from 576 to 384 (in bits)
  3 data member deletions:
    'sched_rt_entity* sched_rt_entity::parent', at offset 384 (in bits) at sched.h:491:1

    'rt_rq* sched_rt_entity::rt_rq', at offset 448 (in bits) at sched.h:493:1

    'rt_rq* sched_rt_entity::my_q', at offset 512 (in bits) at sched.h:495:1

  1033 impacted interfaces
========================================================

Bug: 149954332
Change-Id: I9487bd113502e52f19637e43109433cb13e97a23
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2020-02-27 00:17:49 +00:00
Barani Muthukumaran
3ab1972984 ANDROID: block: Prevent crypto fallback for wrapped keys
blk-crypto-fallback does not support wrapped keys, hence
prevent falling back when program_key fails. Add 'is_hw_wrapped'
flag to blk-crypto-key to mention if the key is wrapped
when the key is initialized.

Bug: 147209885

Test: Validate FBE, simulate a failure in the underlying blk
      device and ensure the call fails without falling back
      to blk-crypto-fallback.

Change-Id: I8bc301ca1ac9e55ba6ab622e8325486916b45c56
Signed-off-by: Barani Muthukumaran <bmuthuku@codeaurora.org>
2020-02-25 19:27:51 +00:00
Greg Kroah-Hartman
47c9e67ef0 ANDROID: update ABI for 5.4.22
Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 2 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'enum cpuhp_state at cpuhotplug.h:25:1' changed:
  type size hasn't changed
  1 enumerator insertion:
    'cpuhp_state::CPUHP_PADATA_DEAD' value '35'

  123 enumerator changes:

  4 impacted interfaces:
    function void __cpuhp_remove_state(cpuhp_state, bool)
    function int __cpuhp_setup_state(cpuhp_state, const char*, bool, void ()*, void ()*, bool)
    function int __cpuhp_state_add_instance(cpuhp_state, hlist_node*, bool)
    function int __cpuhp_state_remove_instance(cpuhp_state, hlist_node*, bool)
'struct dma_device at dmaengine.h:722:1' changed:
  type size changed from 2368 to 2432 (in bits)
  1 data member insertion:
    'module* dma_device::owner', at offset 832 (in bits) at dmaengine.h:741:1
  there are data member changes:
   'u32 dma_device::src_addr_widths' offset changed from 832 to 896 (in bits) (by +64 bits)
   'u32 dma_device::dst_addr_widths' offset changed from 864 to 928 (in bits) (by +64 bits)
   'u32 dma_device::directions' offset changed from 896 to 960 (in bits) (by +64 bits)
   'u32 dma_device::max_burst' offset changed from 928 to 992 (in bits) (by +64 bits)
   'bool dma_device::descriptor_reuse' offset changed from 960 to 1024 (in bits) (by +64 bits)
   'dma_residue_granularity dma_device::residue_granularity' offset changed from 992 to 1056 (in bits) (by +64 bits)
   'void ()* dma_device::device_alloc_chan_resources' offset changed from 1024 to 1088 (in bits) (by +64 bits)
   'void ()* dma_device::device_free_chan_resources' offset changed from 1088 to 1152 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_memcpy' offset changed from 1152 to 1216 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_xor' offset changed from 1216 to 1280 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_xor_val' offset changed from 1280 to 1344 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_pq' offset changed from 1344 to 1408 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_pq_val' offset changed from 1408 to 1472 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_memset' offset changed from 1472 to 1536 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_memset_sg' offset changed from 1536 to 1600 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_interrupt' offset changed from 1600 to 1664 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_slave_sg' offset changed from 1664 to 1728 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_cyclic' offset changed from 1728 to 1792 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_interleaved_dma' offset changed from 1792 to 1856 (in bits) (by +64 bits)
   'void ()* dma_device::device_prep_dma_imm_data' offset changed from 1856 to 1920 (in bits) (by +64 bits)
   'void ()* dma_device::device_config' offset changed from 1920 to 1984 (in bits) (by +64 bits)
   'void ()* dma_device::device_pause' offset changed from 1984 to 2048 (in bits) (by +64 bits)
   'void ()* dma_device::device_resume' offset changed from 2048 to 2112 (in bits) (by +64 bits)
   'void ()* dma_device::device_terminate_all' offset changed from 2112 to 2176 (in bits) (by +64 bits)
   'void ()* dma_device::device_synchronize' offset changed from 2176 to 2240 (in bits) (by +64 bits)
   'void ()* dma_device::device_tx_status' offset changed from 2240 to 2304 (in bits) (by +64 bits)
   'void ()* dma_device::device_issue_pending' offset changed from 2304 to 2368 (in bits) (by +64 bits)

  2 impacted interfaces:
    function void dma_release_channel(dma_chan*)
    function dma_chan* dma_request_chan(device*, const char*)

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I4aacadba49717670df0a06b1aae0413b1de0f37a
2020-02-24 15:08:30 +01:00
Will McVicker
81c818c2f5 ANDROID: update the abi after clk changes
Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 3 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

3 Removed functions:

  [D] 'function void clk_fabia_pll_configure(clk_alpha_pll*, regmap*, const alpha_pll_config*)'
  [D] 'function regmap* qcom_cc_map(platform_device*, const qcom_cc_desc*)'
  [D] 'function int qcom_cc_really_probe(platform_device*, const qcom_cc_desc*, regmap*)'

Signed-off-by: Will McVicker <willmcvicker@google.com>
Bug: 149414941
Change-Id: Ib417ec138979e63eb5dacee574109daa6c0c7aea
2020-02-20 16:27:34 -08:00
Alistair Delva
756757e54c ANDROID: update abi for f2fs/fscrypt merge
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct super_block at fs.h:1424:1' changed:
  type size hasn't changed
  2 data member insertions:
    'unicode_map* super_block::s_encoding', at offset 1600 (in bits) at fs.h:1460:1
    '__u16 super_block::s_encoding_flags', at offset 1664 (in bits) at fs.h:1461:1
  there are data member changes:
   'hlist_bl_head super_block::s_roots' offset changed from 1600 to 1728 (in bits) (by +128 bits)
   'list_head super_block::s_mounts' offset changed from 1664 to 1792 (in bits) (by +128 bits)
   'block_device* super_block::s_bdev' offset changed from 1792 to 1920 (in bits) (by +128 bits)
   'backing_dev_info* super_block::s_bdi' offset changed from 1856 to 1984 (in bits) (by +128 bits)
   'mtd_info* super_block::s_mtd' offset changed from 1920 to 2048 (in bits) (by +128 bits)
   'hlist_node super_block::s_instances' offset changed from 1984 to 2112 (in bits) (by +128 bits)
   'unsigned int super_block::s_quota_types' offset changed from 2112 to 2240 (in bits) (by +128 bits)
   'quota_info super_block::s_dquot' offset changed from 2176 to 2304 (in bits) (by +128 bits)
   'sb_writers super_block::s_writers' offset changed from 4672 to 4800 (in bits) (by +128 bits)
   'void* super_block::s_fs_info' offset changed from 7616 to 7744 (in bits) (by +128 bits)
   'u32 super_block::s_time_gran' offset changed from 7680 to 7808 (in bits) (by +128 bits)
   'time64_t super_block::s_time_min' offset changed from 7744 to 7872 (in bits) (by +128 bits)
   'time64_t super_block::s_time_max' offset changed from 7808 to 7936 (in bits) (by +128 bits)
   '__u32 super_block::s_fsnotify_mask' offset changed from 7872 to 8000 (in bits) (by +128 bits)
   'fsnotify_mark_connector* super_block::s_fsnotify_marks' offset changed from 7936 to 8064 (in bits) (by +128 bits)
   'char super_block::s_id[32]' offset changed from 8000 to 8128 (in bits) (by +128 bits)
   'uuid_t super_block::s_uuid' offset changed from 8256 to 8384 (in bits) (by +128 bits)
   'unsigned int super_block::s_max_links' offset changed from 8384 to 8512 (in bits) (by +128 bits)
   'fmode_t super_block::s_mode' offset changed from 8416 to 8544 (in bits) (by +128 bits)
   'mutex super_block::s_vfs_rename_mutex' offset changed from 8448 to 8576 (in bits) (by +128 bits)
   'const char* super_block::s_subtype' offset changed from 8704 to 8832 (in bits) (by +128 bits)
   'const dentry_operations* super_block::s_d_op' offset changed from 8768 to 8896 (in bits) (by +128 bits)
   'int super_block::cleancache_poolid' offset changed from 8832 to 8960 (in bits) (by +128 bits)
   'shrinker super_block::s_shrink' offset changed from 8896 to 9024 (in bits) (by +128 bits)
   'atomic_long_t super_block::s_remove_count' offset changed from 9408 to 9536 (in bits) (by +128 bits)
   'atomic_long_t super_block::s_fsnotify_inode_refs' offset changed from 9472 to 9600 (in bits) (by +128 bits)
   'int super_block::s_readonly_remount' offset changed from 9536 to 9664 (in bits) (by +128 bits)
   'workqueue_struct* super_block::s_dio_done_wq' offset changed from 9600 to 9728 (in bits) (by +128 bits)
   'hlist_head super_block::s_pins' offset changed from 9664 to 9792 (in bits) (by +128 bits)
   'user_namespace* super_block::s_user_ns' offset changed from 9728 to 9856 (in bits) (by +128 bits)
   'list_lru super_block::s_dentry_lru' offset changed from 9792 to 9920 (in bits) (by +128 bits)
   'list_lru super_block::s_inode_lru' offset changed from 10048 to 10176 (in bits) (by +128 bits)
   'callback_head super_block::rcu' offset changed from 10304 to 10432 (in bits) (by +128 bits)
   'work_struct super_block::destroy_work' offset changed from 10432 to 10560 (in bits) (by +128 bits)
   'mutex super_block::s_sync_lock' offset changed from 10688 to 10816 (in bits) (by +128 bits)
   'int super_block::s_stack_depth' offset changed from 10944 to 11072 (in bits) (by +128 bits)

  398 impacted interfaces

Bug: 148667616
Change-Id: I140ed694581121960439bcd09fe48bc90d91aeb4
Signed-off-by: Alistair Delva <adelva@google.com>
2020-02-20 16:20:07 -08:00
Greg Kroah-Hartman
894c012b6b ANDROID: update abi for 5.4.21
Adds more functions???

Leaf changes summary: 9 artifacts changed (3 filtered out)
Changed leaf types summary: 0 (3 filtered out) leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 9 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

9 Added functions:

  [A] 'function void clear_page(void*)'
  [A] 'function void copy_page(void*, void*)'
  [A] 'function void* memcpy(void*, void*, unsigned long int)'
  [A] 'function void* memmove(void*, void*, unsigned long int)'
  [A] 'function void* memset(void*, int, unsigned long int)'
  [A] 'function unsigned long int strlen(const char*)'
  [A] 'function int strncmp(const char*, const char*, unsigned long int)'
  [A] 'function unsigned long int strnlen(const char*, unsigned long int)'
  [A] 'function char* strrchr(const char*, int)'

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I59786b7c4ab9c84b4b591291bd441ca4ee294f43
2020-02-20 09:17:10 +01:00
Liangcai Fan
34351d1081 ANDROID: ABI/Whitelist: initial unisoc whitelist
This adds a whitelist for the symbols used by the unisoc device.

Also, update the ABI representation accordingly.

44 Added functions:

  [A] 'function int __devm_iio_device_register(device*, iio_dev*, module*)'
  [A] 'function void __init_rwsem(rw_semaphore*, const char*, lock_class_key*)'
  [A] 'function int __spi_register_driver(module*, spi_driver*)'
  [A] 'function void _dev_emerg(const device*, const char*, ...)'
  [A] 'function int blocking_notifier_call_chain(blocking_notifier_head*, unsigned long int, void*)'
  [A] 'function int blocking_notifier_chain_register(blocking_notifier_head*, notifier_block*)'
  [A] 'function int blocking_notifier_chain_unregister(blocking_notifier_head*, notifier_block*)'
  [A] 'function fwnode_handle* device_get_named_child_node(device*, const char*)'
  [A] 'function int devm_extcon_register_notifier_all(device*, extcon_dev*, notifier_block*)'
  [A] 'function iio_dev* devm_iio_device_alloc(device*, int)'
  [A] 'function int devm_mfd_add_devices(device*, int, const mfd_cell*, int, resource*, int, irq_domain*)'
  [A] 'function pinctrl* devm_pinctrl_get(device*)'
  [A] 'function power_supply* devm_power_supply_register(device*, const power_supply_desc*, const power_supply_config*)'
  [A] 'function int devm_regmap_add_irq_chip(device*, regmap*, int, int, int, const regmap_irq_chip*, regmap_irq_chip_data**)'
  [A] 'function regulator* devm_regulator_get_optional(device*, const char*)'
  [A] 'function int fwnode_property_read_string(const fwnode_handle*, const char*, const char**)'
  [A] 'function int fwnode_property_read_u16_array(const fwnode_handle*, const char*, u16*, size_t)'
  [A] 'function int fwnode_property_read_u32_array(const fwnode_handle*, const char*, u32*, size_t)'
  [A] 'function int kobject_uevent(kobject*, kobject_action)'
  [A] 'function int match_string(const char* const*, size_t, const char*)'
  [A] 'function const char* of_prop_next_string(property*, const char*)'
  [A] 'function const char* pin_get_name(pinctrl_dev*, const unsigned int)'
  [A] 'function int pinconf_generic_parse_dt_config(device_node*, pinctrl_dev*, unsigned long int**, unsigned int*)'
  [A] 'function pinctrl_state* pinctrl_lookup_state(pinctrl*, const char*)'
  [A] 'function pinctrl_dev* pinctrl_register(pinctrl_desc*, device*, void*)'
  [A] 'function int pinctrl_select_state(pinctrl*, pinctrl_state*)'
  [A] 'function void pinctrl_unregister(pinctrl_dev*)'
  [A] 'function int pinctrl_utils_add_map_configs(pinctrl_dev*, pinctrl_map**, unsigned int*, unsigned int*, const char*, unsigned long int*, unsigned int, pinctrl_map_type)'
  [A] 'function int pinctrl_utils_add_map_mux(pinctrl_dev*, pinctrl_map**, unsigned int*, unsigned int*, const char*, const char*)'
  [A] 'function int pinctrl_utils_reserve_map(pinctrl_dev*, pinctrl_map**, unsigned int*, unsigned int*, unsigned int)'
  [A] 'function void power_supply_changed(power_supply*)'
  [A] 'function void* power_supply_get_drvdata(power_supply*)'
  [A] 'function irq_domain* regmap_irq_get_domain(regmap_irq_chip_data*)'
  [A] 'function void seq_putc(seq_file*, char)'
  [A] 'function int spi_sync(spi_device*, spi_message*)'
  [A] 'function regmap* syscon_regmap_lookup_by_phandle_args(device_node*, const char*, int, unsigned int*)'
  [A] 'function int sysfs_create_group(kobject*, const attribute_group*)'
  [A] 'function int sysfs_create_groups(kobject*, const attribute_group**)'
  [A] 'function int sysfs_create_link(kobject*, kobject*, const char*)'
  [A] 'function void sysfs_notify(kobject*, const char*, const char*)'
  [A] 'function void sysfs_remove_group(kobject*, const attribute_group*)'
  [A] 'function void sysfs_remove_groups(kobject*, const attribute_group**)'
  [A] 'function void sysfs_remove_link(kobject*, const char*)'
  [A] 'function bool sysfs_streq(const char*, const char*)'

Bug: 147075469
Change-Id: I54adc551bafc815ad62a815e3327f7ebf09aab9e
Signed-off-by: Liangcai Fan <liangcai.fan@unisoc.com>
Signed-off-by: Matthias Maennich <maennich@google.com>
2020-02-19 13:35:40 +00:00
Matthias Maennich
66096b4c5f ANDROID: Fix ABI representation after enabling CONFIG_NET_NS
Leaf changes summary: 7 artifacts changed (1 filtered out)
Changed leaf types summary: 7 (1 filtered out) leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct net at net_namespace.h:54:1' changed:
  type size hasn't changed
  1 data member insertion:
    'netns_xdp net::xdp', at offset 31744 (in bits) at net_namespace.h:178:1
  there are data member changes:
   'sock* net::diag_nlsk' offset changed from 31744 to 32064 (in bits) (by +320 bits)

  1018 impacted interfaces

'struct net_device at netdevice.h:1781:1' changed:
  type size hasn't changed
  there are data member changes:
   'possible_net_t net_device::nd_net' size changed from 0 to 64 (in bits) (by +64 bits)
   offset changed from 9472 to 9536 (in bits) (by +64 bits)
   'device net_device::dev' offset changed from 9536 to 9600 (in bits) (by +64 bits)
   'const attribute_group* net_device::sysfs_groups[4]' offset changed from 15680 to 15744 (in bits) (by +64 bits)
   'const attribute_group* net_device::sysfs_rx_queue_group' offset changed from 15936 to 16000 (in bits) (by +64 bits)
   'const rtnl_link_ops* net_device::rtnl_link_ops' offset changed from 16000 to 16064 (in bits) (by +64 bits)
   'unsigned int net_device::gso_max_size' offset changed from 16064 to 16128 (in bits) (by +64 bits)
   'u16 net_device::gso_max_segs' offset changed from 16096 to 16160 (in bits) (by +64 bits)
   's16 net_device::num_tc' offset changed from 16112 to 16176 (in bits) (by +64 bits)
   'netdev_tc_txq net_device::tc_to_txq[16]' offset changed from 16128 to 16192 (in bits) (by +64 bits)
   'u8 net_device::prio_tc_map[16]' offset changed from 16640 to 16704 (in bits) (by +64 bits)
   'phy_device* net_device::phydev' offset changed from 16768 to 16832 (in bits) (by +64 bits)
   'sfp_bus* net_device::sfp_bus' offset changed from 16832 to 16896 (in bits) (by +64 bits)
   'lock_class_key net_device::addr_list_lock_key' offset changed from 16896 to 16960 (in bits) (by +64 bits)
   'bool net_device::proto_down' offset changed from 16896 to 16960 (in bits) (by +64 bits)
   'lock_class_key net_device::qdisc_running_key' offset changed from 16896 to 16960 (in bits) (by +64 bits)
   'lock_class_key net_device::qdisc_tx_busylock_key' offset changed from 16896 to 16960 (in bits) (by +64 bits)
   'lock_class_key net_device::qdisc_xmit_lock_key' offset changed from 16896 to 16960 (in bits) (by +64 bits)

  1018 impacted interfaces

'struct netdev_queue at netdevice.h:589:1' changed:
  type size hasn't changed
  1 data member insertion:
    'xdp_umem* netdev_queue::umem', at offset 896 (in bits) at netdevice.h:612:1

  1018 impacted interfaces

'struct netdev_rx_queue at netdevice.h:736:1' changed:
  type size changed from 1536 to 2048 (in bits)
  1 data member insertion:
    'xdp_umem* netdev_rx_queue::umem', at offset 1536 (in bits) at netdevice.h:745:1

  1018 impacted interfaces

'struct request_sock at request_sock.h:46:1' changed:
  type size changed from 1728 to 1792 (in bits)
  there are data member changes:
   type 'struct sock_common' of 'request_sock::__req_common' changed:
, size changed from 1024 to 1088 (in bits) (by +64 bits)
   'request_sock* request_sock::dl_next' offset changed from 1024 to 1088 (in bits) (by +64 bits)
   'u16 request_sock::mss' offset changed from 1088 to 1152 (in bits) (by +64 bits)
   'u8 request_sock::num_retrans' offset changed from 1104 to 1168 (in bits) (by +64 bits)
   'u8 request_sock::num_timeout' offset changed from 1112 to 1176 (in bits) (by +64 bits)
   'u32 request_sock::ts_recent' offset changed from 1120 to 1184 (in bits) (by +64 bits)
   'timer_list request_sock::rsk_timer' offset changed from 1152 to 1216 (in bits) (by +64 bits)
   'const request_sock_ops* request_sock::rsk_ops' offset changed from 1472 to 1536 (in bits) (by +64 bits)
   'sock* request_sock::sk' offset changed from 1536 to 1600 (in bits) (by +64 bits)
   'u32* request_sock::saved_syn' offset changed from 1600 to 1664 (in bits) (by +64 bits)
   'u32 request_sock::secid' offset changed from 1664 to 1728 (in bits) (by +64 bits)
   'u32 request_sock::peer_secid' offset changed from 1696 to 1760 (in bits) (by +64 bits)

  36 impacted interfaces

'struct sock at sock.h:324:1' changed:
  type size changed from 5952 to 6016 (in bits)
  there are data member changes:
   type 'struct sock_common' of 'sock::__sk_common' changed:
     type size changed from 1024 to 1088 (in bits)
     there are data member changes:
      'possible_net_t sock_common::skc_net' size changed from 0 to 64 (in bits) (by +64 bits)
      'in6_addr sock_common::skc_v6_daddr' offset changed from 384 to 448 (in bits) (by +64 bits)
      'in6_addr sock_common::skc_v6_rcv_saddr' offset changed from 512 to 576 (in bits) (by +64 bits)
      'atomic64_t sock_common::skc_cookie' offset changed from 640 to 704 (in bits) (by +64 bits)
      'int sock_common::skc_dontcopy_begin[]' offset changed from 768 to 832 (in bits) (by +64 bits)
      'unsigned short int sock_common::skc_tx_queue_mapping' offset changed from 896 to 960 (in bits) (by +64 bits)
      'unsigned short int sock_common::skc_rx_queue_mapping' offset changed from 912 to 976 (in bits) (by +64 bits)
      'refcount_t sock_common::skc_refcnt' offset changed from 960 to 1024 (in bits) (by +64 bits)
      'int sock_common::skc_dontcopy_end[]' offset changed from 992 to 1056 (in bits) (by +64 bits)

     36 impacted interfaces
, offset changed from 1792 to 1856 (in bits) (by +64 bits)
   'int sock::sk_forward_alloc' offset changed from 1984 to 2048 (in bits) (by +64 bits)
   'unsigned int sock::sk_ll_usec' offset changed from 2016 to 2080 (in bits) (by +64 bits)
   'unsigned int sock::sk_napi_id' offset changed from 2048 to 2112 (in bits) (by +64 bits)
   'int sock::sk_rcvbuf' offset changed from 2080 to 2144 (in bits) (by +64 bits)
   'sk_filter* sock::sk_filter' offset changed from 2112 to 2176 (in bits) (by +64 bits)
   offset changed from 2176 to 2240 (in bits) (by +64 bits)
   'xfrm_policy* sock::sk_policy[2]' offset changed from 2240 to 2304 (in bits) (by +64 bits)
   'dst_entry* sock::sk_rx_dst' offset changed from 2368 to 2432 (in bits) (by +64 bits)
   'dst_entry* sock::sk_dst_cache' offset changed from 2432 to 2496 (in bits) (by +64 bits)
   'atomic_t sock::sk_omem_alloc' offset changed from 2496 to 2560 (in bits) (by +64 bits)
   'int sock::sk_sndbuf' offset changed from 2528 to 2592 (in bits) (by +64 bits)
   'int sock::sk_wmem_queued' offset changed from 2560 to 2624 (in bits) (by +64 bits)
   'refcount_t sock::sk_wmem_alloc' offset changed from 2592 to 2656 (in bits) (by +64 bits)
   'unsigned long int sock::sk_tsq_flags' offset changed from 2624 to 2688 (in bits) (by +64 bits)
   'sk_buff* sock::sk_tx_skb_cache' offset changed from 2752 to 2816 (in bits) (by +64 bits)
   'sk_buff_head sock::sk_write_queue' offset changed from 2816 to 2880 (in bits) (by +64 bits)
   '__s32 sock::sk_peek_off' offset changed from 3008 to 3072 (in bits) (by +64 bits)
   'int sock::sk_write_pending' offset changed from 3040 to 3104 (in bits) (by +64 bits)
   '__u32 sock::sk_dst_pending_confirm' offset changed from 3072 to 3136 (in bits) (by +64 bits)
   'u32 sock::sk_pacing_status' offset changed from 3104 to 3168 (in bits) (by +64 bits)
   'long int sock::sk_sndtimeo' offset changed from 3136 to 3200 (in bits) (by +64 bits)
   'timer_list sock::sk_timer' offset changed from 3200 to 3264 (in bits) (by +64 bits)
   '__u32 sock::sk_priority' offset changed from 3520 to 3584 (in bits) (by +64 bits)
   '__u32 sock::sk_mark' offset changed from 3552 to 3616 (in bits) (by +64 bits)
   'unsigned long int sock::sk_pacing_rate' offset changed from 3584 to 3648 (in bits) (by +64 bits)
   'unsigned long int sock::sk_max_pacing_rate' offset changed from 3648 to 3712 (in bits) (by +64 bits)
   'page_frag sock::sk_frag' offset changed from 3712 to 3776 (in bits) (by +64 bits)
   'netdev_features_t sock::sk_route_caps' offset changed from 3840 to 3904 (in bits) (by +64 bits)
   'netdev_features_t sock::sk_route_nocaps' offset changed from 3904 to 3968 (in bits) (by +64 bits)
   'netdev_features_t sock::sk_route_forced_caps' offset changed from 3968 to 4032 (in bits) (by +64 bits)
   'int sock::sk_gso_type' offset changed from 4032 to 4096 (in bits) (by +64 bits)
   'unsigned int sock::sk_gso_max_size' offset changed from 4064 to 4128 (in bits) (by +64 bits)
   'gfp_t sock::sk_allocation' offset changed from 4096 to 4160 (in bits) (by +64 bits)
   '__u32 sock::sk_txhash' offset changed from 4128 to 4192 (in bits) (by +64 bits)
   'unsigned int sock::__sk_flags_offset[]' offset changed from 4160 to 4224 (in bits) (by +64 bits)
   'unsigned int sock::sk_type' offset changed from 4160 to 4224 (in bits) (by +64 bits)
   'u16 sock::sk_gso_max_segs' offset changed from 4192 to 4256 (in bits) (by +64 bits)
   'u8 sock::sk_pacing_shift' offset changed from 4208 to 4272 (in bits) (by +64 bits)
   'unsigned long int sock::sk_lingertime' offset changed from 4224 to 4288 (in bits) (by +64 bits)
   'proto* sock::sk_prot_creator' offset changed from 4288 to 4352 (in bits) (by +64 bits)
   'rwlock_t sock::sk_callback_lock' offset changed from 4352 to 4416 (in bits) (by +64 bits)
   'int sock::sk_err' offset changed from 4416 to 4480 (in bits) (by +64 bits)
   'int sock::sk_err_soft' offset changed from 4448 to 4512 (in bits) (by +64 bits)
   'u32 sock::sk_ack_backlog' offset changed from 4480 to 4544 (in bits) (by +64 bits)
   'u32 sock::sk_max_ack_backlog' offset changed from 4512 to 4576 (in bits) (by +64 bits)
   'kuid_t sock::sk_uid' offset changed from 4544 to 4608 (in bits) (by +64 bits)
   'pid* sock::sk_peer_pid' offset changed from 4608 to 4672 (in bits) (by +64 bits)
   'const cred* sock::sk_peer_cred' offset changed from 4672 to 4736 (in bits) (by +64 bits)
   'long int sock::sk_rcvtimeo' offset changed from 4736 to 4800 (in bits) (by +64 bits)
   'ktime_t sock::sk_stamp' offset changed from 4800 to 4864 (in bits) (by +64 bits)
   'u16 sock::sk_tsflags' offset changed from 4864 to 4928 (in bits) (by +64 bits)
   'u8 sock::sk_shutdown' offset changed from 4880 to 4944 (in bits) (by +64 bits)
   'u32 sock::sk_tskey' offset changed from 4896 to 4960 (in bits) (by +64 bits)
   'atomic_t sock::sk_zckey' offset changed from 4928 to 4992 (in bits) (by +64 bits)
   'u8 sock::sk_clockid' offset changed from 4960 to 5024 (in bits) (by +64 bits)
   'u8 sock::sk_txtime_unused' offset changed from 4968 to 5032 (in bits) (by +64 bits)
   'socket* sock::sk_socket' offset changed from 4992 to 5056 (in bits) (by +64 bits)
   'void* sock::sk_user_data' offset changed from 5056 to 5120 (in bits) (by +64 bits)
   'void* sock::sk_security' offset changed from 5120 to 5184 (in bits) (by +64 bits)
   'sock_cgroup_data sock::sk_cgrp_data' offset changed from 5184 to 5248 (in bits) (by +64 bits)
   'mem_cgroup* sock::sk_memcg' offset changed from 5248 to 5312 (in bits) (by +64 bits)
   'void ()* sock::sk_state_change' offset changed from 5312 to 5376 (in bits) (by +64 bits)
   'void ()* sock::sk_data_ready' offset changed from 5376 to 5440 (in bits) (by +64 bits)
   'void ()* sock::sk_write_space' offset changed from 5440 to 5504 (in bits) (by +64 bits)
   'void ()* sock::sk_error_report' offset changed from 5504 to 5568 (in bits) (by +64 bits)
   'void ()* sock::sk_backlog_rcv' offset changed from 5568 to 5632 (in bits) (by +64 bits)
   'void ()* sock::sk_destruct' offset changed from 5632 to 5696 (in bits) (by +64 bits)
   'sock_reuseport* sock::sk_reuseport_cb' offset changed from 5696 to 5760 (in bits) (by +64 bits)
   'bpf_sk_storage* sock::sk_bpf_storage' offset changed from 5760 to 5824 (in bits) (by +64 bits)
   'callback_head sock::sk_rcu' offset changed from 5824 to 5888 (in bits) (by +64 bits)

  36 impacted interfaces

'struct sock_common at sock.h:147:1' changed:
  details were reported earlier

Fixes: 9b0d1af931 ("ANDROID: gki_defconfig: Enable CONFIG_NET_NS")
Change-Id: Ied4883cd3d8b15c29df2b04258b30aa4c8c739ec
Signed-off-by: Matthias Maennich <maennich@google.com>
2020-02-19 12:24:09 +00:00
Matthias Maennich
d5581a7f19 ANDROID: ABI/Whitelist: update for db845c
This adds a whitelist for the symbols used by the db845c device and
updates the ABI representation accordingly.

These are the steps:

1) Perform a clean device build (db845c):

  $ BUILD_CONFIG=common/build.config.db845c build/build.sh

2) Extract the ABI whitelist for this device

  $ build/abi/extract_symbols out/android-5.4/dist/ --whitelist common/abi_gki_aarch64_db845c_whitelist

3) Add the whitelist to the list of ADDITIONAL_KMI_WHITELISTS

4) Update the ABI representation for the GKI

  $ BUILD_CONFIG=common/build.config.gki.aarch64 build/build_abi.sh --update

Bug: 147894960
Change-Id: Idf6ed8877cc538e63aab5714c281abf153aad5a3
Signed-off-by: Matthias Maennich <maennich@google.com>
2020-02-13 19:59:22 +00:00
Matthias Maennich
70c8e8b61d ANDROID: ABI/Whitelist: update for Cuttlefish
This adds a whitelist for the symbols used by the cuttlefish device and
updates the ABI representation accordingly.

These are the steps:

1) Perform a clean device build (Cuttlefish):

  $ BUILD_CONFIG=common/build.config.cuttlefish.aarch64 build/build.sh

2) Extract the ABI whitelist for this device

  $ build/abi/extract_symbols out/android-5.4/dist/ --whitelist common/abi_gki_aarch64_cuttlefish_whitelist

3) Add the whitelist to the list of ADDITIONAL_KMI_WHITELISTS

4) Update the ABI representation for the GKI

  $ BUILD_CONFIG=common/build.config.gki.aarch64 build/build_abi.sh --update

Bug: 147894960
Change-Id: I433b200dd5b79bf9ee9adeea1db7b66c571f6539
Signed-off-by: Matthias Maennich <maennich@google.com>
2020-02-13 19:58:58 +00:00
Matthias Maennich
3fad706f8b ANDROID: update ABI representation and GKI whitelist
Now that GKI comes without modules, the GKI whitelist is effectively
empty as GKI itself would not require any stable symbols any longer.

Hence, clear out the main whitelist and ABI representation. In
subsequent changes I will extend the additional whitelists to bring back
the actually used symbols.

Bug: 147894960
Change-Id: If34fad5f4bded40a6d76dd75694c772d05271332
Signed-off-by: Matthias Maennich <maennich@google.com>
2020-02-13 19:58:25 +00:00
Greg Kroah-Hartman
ecf5064346 ANDROID: update ABI for 5.4.19
Leaf changes summary: 3 artifacts changed
Changed leaf types summary: 3 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct drm_connector at drm_connector.h:1087:1' changed:
  type size hasn't changed
  1 data member insertion:
    'u8 drm_connector::real_edid_checksum', at offset 13800 (in bits) at drm_connector.h:1409:1
  there are data member changes:
   type 'struct drm_display_info' of 'drm_connector::display_info' changed:
     type size hasn't changed
     there are data member changes:
      type 'struct drm_hdmi_info' of 'drm_display_info::hdmi' changed:
        type size hasn't changed
        1 data member insertion:
          'u16 drm_hdmi_info::colorimetry', at offset 400 (in bits) at drm_connector.h:213:1

        54 impacted interfaces:

     54 impacted interfaces:

  54 impacted interfaces:

'struct drm_display_info at drm_connector.h:366:1' changed:
  details were reported earlier

'struct drm_hdmi_info at drm_connector.h:186:1' changed:
  details were reported earlier

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5d9a5fec23b3be05359e077ebd1f9ded02a64dbc
2020-02-11 14:34:05 -08:00
Greg Kroah-Hartman
67a115033f ANDROID: update ABI for 5.4.18
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 1 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

'struct cfg80211_ops at cfg80211.h:3629:1' changed:
  type size changed from 6912 to 6976 (in bits)
  1 data member insertion:
    'void ()* cfg80211_ops::end_cac', at offset 5184 (in bits) at cfg80211.h:3869:1
  there are data member changes:
   'void ()* cfg80211_ops::update_ft_ies' offset changed from 5184 to 5248 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::crit_proto_start' offset changed from 5248 to 5312 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::crit_proto_stop' offset changed from 5312 to 5376 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::set_coalesce' offset changed from 5376 to 5440 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::channel_switch' offset changed from 5440 to 5504 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::set_qos_map' offset changed from 5504 to 5568 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::set_ap_chanwidth' offset changed from 5568 to 5632 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::add_tx_ts' offset changed from 5632 to 5696 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::del_tx_ts' offset changed from 5696 to 5760 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::tdls_channel_switch' offset changed from 5760 to 5824 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::tdls_cancel_channel_switch' offset changed from 5824 to 5888 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::start_nan' offset changed from 5888 to 5952 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::stop_nan' offset changed from 5952 to 6016 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::add_nan_func' offset changed from 6016 to 6080 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::del_nan_func' offset changed from 6080 to 6144 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::nan_change_conf' offset changed from 6144 to 6208 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::set_multicast_to_unicast' offset changed from 6208 to 6272 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::get_txq_stats' offset changed from 6272 to 6336 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::set_pmk' offset changed from 6336 to 6400 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::del_pmk' offset changed from 6400 to 6464 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::external_auth' offset changed from 6464 to 6528 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::tx_control_port' offset changed from 6528 to 6592 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::get_ftm_responder_stats' offset changed from 6592 to 6656 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::start_pmsr' offset changed from 6656 to 6720 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::abort_pmsr' offset changed from 6720 to 6784 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::update_owe_info' offset changed from 6784 to 6848 (in bits) (by +64 bits)
   'void ()* cfg80211_ops::probe_mesh_link' offset changed from 6848 to 6912 (in bits) (by +64 bits)

  one impacted interface:
    function wiphy* wiphy_new_nm(const cfg80211_ops*, int, const char*)

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I27df1c1add3d3a6eb41eae7672f3c57f75a4bffe
2020-02-05 22:39:25 +00:00