Commit Graph

39 Commits

Author SHA1 Message Date
liquanzhou
4581cd018d ANDROID: GKI: Add symbol list for Zebra
Add the android/abi_gki_aarch64_zebra

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

4 Added functions:

  [A] 'function int mmc_sw_reset(mmc_host*)'
  [A] 'function int nla_append(sk_buff*, int, void*)'
  [A] 'function nlattr* nla_reserve(sk_buff*, int, int)'
  [A] 'function void prandom_seed(u32)'

Bug: 225120081

Signed-off-by: liquanzhou <liquanzhou1993@gmail.com>
Change-Id: Id199dd5ec9b48798964674fb58510ab51f8731dc
Signed-off-by: liquanzhou <liquanzhou1993@gmail.com>
2022-03-23 15:27:27 +00:00
Nobutaka Matsuo
aa64559e55 ANDROID: GKI: Add FCNT KMI symbol list
No new symbols added that are not already in the .xml file.

Bug: 194979426
Change-Id: I5fad2df65c189bf0afbefeff2aeab19c500552dd
Signed-off-by: Nobutaka Matsuo <matsuo.nobu@fcnt.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2021-08-10 15:36:50 +00:00
Dmitry Antipov
e588439d0c ANDROID: ABI: Update allowed list for Microsoft
Leaf changes summary: 6 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 6 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

6 Added functions:

[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 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 spi_async(spi_device*, spi_message*)'

Bug: 194673479
Signed-off-by: Dmitry Antipov <dmanti@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I7af3139b3670ac6d4eb87b0774362aaf79160e76
2021-08-05 12:30:11 +02:00
Yoshitaka Seto
f59ee36156 ANDROID: GKI: Add KMI symbol list for Sony Android Walkman products
Added initial file named abi_gki_aarch64_sonywalkman.

abi.report.short:

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

13 Added functions:

  [A] 'function int cpumask_any_but(const cpumask*, unsigned int)'
  [A] 'function int extcon_set_property_sync(extcon_dev*, unsigned int, unsigned int, extcon_property_value)'
  [A] 'function int extcon_set_state(extcon_dev*, unsigned int, bool)'
  [A] 'function int mmc_gpio_set_cd_wake(mmc_host*, bool)'
  [A] 'function int mod_timer_pending(timer_list*, unsigned long int)'
  [A] 'function void perf_pmu_migrate_context(pmu*, int, int)'
  [A] 'function int perf_pmu_register(pmu*, const char*, int)'
  [A] 'function void perf_pmu_unregister(pmu*)'
  [A] 'function scatterlist* sg_last(scatterlist*, unsigned 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)'

1 Added variable:

  [A] 'workqueue_struct* system_freezable_power_efficient_wq'

Bug: 193202308
Change-Id: Id6db1e7357f3c42dca310d0aa7d92e71388e25d6
Signed-off-by: Yoshitaka Seto <yoshitaka.seto@sony.com>
2021-07-09 08:38:08 +00:00
Jindong Yue
ce582b2960 ANDROID: GKI: Add IMX KMI symbol list
Add initial IMX KMI symbol file: abi_gki_aarch64_imx.

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

165 Added functions:

  [A] 'function int __device_reset(device*, bool)'
  [A] 'function void* __v4l2_find_nearest_size(void*, size_t, size_t, size_t, size_t, s32, s32)'
  [A] 'function int _vb2_fop_release(file*, mutex*)'
  [A] 'function void cec_fill_conn_info_from_drm(cec_connector_info*, const drm_connector*)'
  [A] 'function cec_notifier* cec_notifier_cec_adap_register(device*, const char*, cec_adapter*)'
  [A] 'function void cec_notifier_cec_adap_unregister(cec_notifier*)'
  [A] 'function cec_notifier* cec_notifier_conn_register(device*, const char*, const cec_connector_info*)'
  [A] 'function void cec_notifier_conn_unregister(cec_notifier*)'
  [A] 'function void cec_notifier_set_phys_addr(cec_notifier*, u16)'
  [A] 'function void cec_notifier_set_phys_addr_from_edid(cec_notifier*, const edid*)'
  [A] 'function void cfg80211_cac_event(net_device*, const cfg80211_chan_def*, nl80211_radar_event, gfp_t)'
  [A] 'function void cfg80211_radar_event(wiphy*, cfg80211_chan_def*, gfp_t)'
  [A] 'function void cfg80211_report_wowlan_wakeup(wireless_dev*, cfg80211_wowlan_wakeup*, gfp_t)'
  [A] 'function clk_hw* clk_hw_register_composite(device*, const char*, const char* const*, int, clk_hw*, const clk_ops*, clk_hw*, const clk_ops*, clk_hw*, const clk_ops*, unsigned long int)'
  [A] 'function bool clk_is_match(const clk*, const clk*)'
  [A] 'function clk* clk_register_mux(device*, const char*, const char* const*, u8, unsigned long int, void*, u8, u8, u8, spinlock_t*)'
  [A] 'function device* dev_pm_domain_attach_by_id(device*, unsigned int)'
  [A] 'function drm_bridge* devm_drm_panel_bridge_add(device*, drm_panel*, u32)'
  [A] 'function irq_chip_generic* devm_irq_alloc_generic_chip(device*, const char*, int, unsigned int, void*, irq_flow_handler_t)'
  [A] 'function int devm_irq_setup_generic_chip(device*, irq_chip_generic*, u32, irq_gc_flags, unsigned int, unsigned int)'
  [A] 'function phy* devm_of_phy_get(device*, device_node*, const char*)'
  [A] 'function phy* devm_phy_optional_get(device*, const char*)'
  [A] 'function int devm_pinctrl_register_and_init(device*, pinctrl_desc*, void*, pinctrl_dev**)'
  [A] 'function void devm_remove_action(device*, void (void*)*, void*)'
  [A] 'function int driver_create_file(device_driver*, const driver_attribute*)'
  [A] 'function void driver_remove_file(device_driver*, const driver_attribute*)'
  [A] 'function int drm_connector_init_with_ddc(drm_device*, drm_connector*, const drm_connector_funcs*, int, i2c_adapter*)'
  [A] 'function hdmi_quantization_range drm_default_rgb_quant_range(const drm_display_mode*)'
  [A] 'function int drm_display_info_set_bus_formats(drm_display_info*, const u32*, unsigned int)'
  [A] 'function int drm_gem_cma_dumb_create(drm_file*, drm_device*, drm_mode_create_dumb*)'
  [A] 'function void drm_hdmi_avi_infoframe_colorspace(hdmi_avi_infoframe*, const drm_connector_state*)'
  [A] 'function void drm_hdmi_avi_infoframe_quant_range(hdmi_avi_infoframe*, drm_connector*, const drm_display_mode*, hdmi_quantization_range)'
  [A] 'function int drm_hdmi_infoframe_set_hdr_metadata(hdmi_drm_infoframe*, const drm_connector_state*)'
  [A] 'function int drm_hdmi_vendor_infoframe_from_display_mode(hdmi_vendor_infoframe*, drm_connector*, const drm_display_mode*)'
  [A] 'function int drm_mode_create_hdmi_colorspace_property(drm_connector*)'
  [A] 'function drm_display_mode* drm_mode_find_dmt(drm_device*, int, int, int, bool)'
  [A] 'function bool drm_mode_is_420_also(const drm_display_info*, const drm_display_mode*)'
  [A] 'function bool drm_mode_is_420_only(const drm_display_info*, const drm_display_mode*)'
  [A] 'function int drm_of_encoder_active_endpoint(device_node*, drm_encoder*, of_endpoint*)'
  [A] 'function int drm_of_find_panel_or_bridge(const device_node*, int, int, drm_panel**, drm_bridge**)'
  [A] 'function ssize_t drm_scdc_read(i2c_adapter*, u8, void*, size_t)'
  [A] 'function bool drm_scdc_set_high_tmds_clock_ratio(i2c_adapter*, bool)'
  [A] 'function bool drm_scdc_set_scrambling(i2c_adapter*, bool)'
  [A] 'function ssize_t drm_scdc_write(i2c_adapter*, u8, void*, size_t)'
  [A] 'function int dw_pcie_ep_raise_legacy_irq(dw_pcie_ep*, unsigned char)'
  [A] 'function int dw_pcie_ep_raise_msi_irq(dw_pcie_ep*, unsigned char, unsigned char)'
  [A] 'function int dw_pcie_ep_raise_msix_irq(dw_pcie_ep*, unsigned char, unsigned short int)'
  [A] 'function void dw_pcie_ep_reset_bar(dw_pcie*, pci_barno)'
  [A] 'function int dw_pcie_link_up(dw_pcie*)'
  [A] 'function bool fwnode_device_is_available(const fwnode_handle*)'
  [A] 'function fwnode_handle* fwnode_get_next_parent(fwnode_handle*)'
  [A] 'function fwnode_handle* fwnode_graph_get_next_endpoint(const fwnode_handle*, fwnode_handle*)'
  [A] 'function fwnode_handle* fwnode_graph_get_port_parent(const fwnode_handle*)'
  [A] 'function fwnode_handle* fwnode_graph_get_remote_endpoint(const fwnode_handle*)'
  [A] 'function fwnode_handle* fwnode_graph_get_remote_port_parent(const fwnode_handle*)'
  [A] 'function int fwnode_graph_parse_endpoint(const fwnode_handle*, fwnode_endpoint*)'
  [A] 'function int fwnode_property_read_u64_array(const fwnode_handle*, const char*, u64*, size_t)'
  [A] 'function void* gen_pool_dma_alloc(gen_pool*, size_t, dma_addr_t*)'
  [A] 'function int hdmi_avi_infoframe_check(hdmi_avi_infoframe*)'
  [A] 'function ssize_t hdmi_drm_infoframe_pack(hdmi_drm_infoframe*, void*, size_t)'
  [A] 'function ssize_t hdmi_vendor_infoframe_pack(hdmi_vendor_infoframe*, void*, size_t)'
  [A] 'function irq_domain* irq_domain_add_legacy(device_node*, unsigned int, unsigned int, irq_hw_number_t, const irq_domain_ops*, void*)'
  [A] 'function int iw_handler_get_spy(net_device*, iw_request_info*, iwreq_data*, char*)'
  [A] 'function int iw_handler_get_thrspy(net_device*, iw_request_info*, iwreq_data*, char*)'
  [A] 'function int iw_handler_set_spy(net_device*, iw_request_info*, iwreq_data*, char*)'
  [A] 'function int iw_handler_set_thrspy(net_device*, iw_request_info*, iwreq_data*, char*)'
  [A] 'function char* iwe_stream_add_event(iw_request_info*, char*, char*, iw_event*, int)'
  [A] 'function char* iwe_stream_add_point(iw_request_info*, char*, char*, iw_event*, char*)'
  [A] 'function char* iwe_stream_add_value(iw_request_info*, char*, char*, char*, iw_event*, int)'
  [A] 'function dentry* kern_path_create(int, const char*, path*, unsigned int)'
  [A] 'function void ktime_get_snapshot(system_time_snapshot*)'
  [A] 'function void mctrl_gpio_disable_ms(mctrl_gpios*)'
  [A] 'function void mctrl_gpio_enable_ms(mctrl_gpios*)'
  [A] 'function unsigned int mctrl_gpio_get(mctrl_gpios*, unsigned int*)'
  [A] 'function mctrl_gpios* mctrl_gpio_init(uart_port*, unsigned int)'
  [A] 'function void mctrl_gpio_set(mctrl_gpios*, unsigned int)'
  [A] 'function bool mdiobus_is_registered_device(mii_bus*, int)'
  [A] 'function void media_graph_walk_cleanup(media_graph*)'
  [A] 'function int mipi_dsi_dcs_enter_sleep_mode(mipi_dsi_device*)'
  [A] 'function int mipi_dsi_dcs_exit_sleep_mode(mipi_dsi_device*)'
  [A] 'function int mipi_dsi_dcs_get_display_brightness(mipi_dsi_device*, u16*)'
  [A] 'function int mipi_dsi_dcs_set_display_off(mipi_dsi_device*)'
  [A] 'function int mipi_dsi_dcs_set_display_on(mipi_dsi_device*)'
  [A] 'function int mipi_dsi_dcs_set_pixel_format(mipi_dsi_device*, u8)'
  [A] 'function int mipi_dsi_dcs_set_tear_on(mipi_dsi_device*, mipi_dsi_dcs_tear_mode)'
  [A] 'function int mipi_dsi_dcs_set_tear_scanline(mipi_dsi_device*, u16)'
  [A] 'function int mipi_dsi_dcs_soft_reset(mipi_dsi_device*)'
  [A] 'function void mmc_retune_timer_stop(mmc_host*)'
  [A] 'function gen_pool* of_gen_pool_get(device_node*, const char*, int)'
  [A] 'function int of_get_display_timing(const device_node*, const char*, display_timing*)'
  [A] 'function i2c_adapter* of_get_i2c_adapter_by_node(device_node*)'
  [A] 'function phy_device* of_phy_connect(net_device*, device_node*, void (net_device*)*, u32, phy_interface_t)'
  [A] 'function phy_device* of_phy_find_device(device_node*)'
  [A] 'function int of_regulator_match(device*, device_node*, of_regulator_match*, unsigned int)'
  [A] 'function int of_usb_update_otg_caps(device_node*, usb_otg_caps*)'
  [A] 'function pci_power_t pci_choose_state(pci_dev*, pm_message_t)'
  [A] 'function int pci_msi_enabled()'
  [A] 'function int phy_reset_after_clk_enable(phy_device*)'
  [A] 'function int phy_set_max_speed(phy_device*, u32)'
  [A] 'function void phy_set_sym_pause(phy_device*, bool, bool, bool)'
  [A] 'function void phy_support_sym_pause(phy_device*)'
  [A] 'function int pinctrl_enable(pinctrl_dev*)'
  [A] 'function group_desc* pinctrl_generic_get_group(pinctrl_dev*, unsigned int)'
  [A] 'function int pinctrl_generic_get_group_count(pinctrl_dev*)'
  [A] 'function const char* pinctrl_generic_get_group_name(pinctrl_dev*, unsigned int)'
  [A] 'function int pinctrl_generic_get_group_pins(pinctrl_dev*, unsigned int, const unsigned int**, unsigned int*)'
  [A] 'function function_desc* pinmux_generic_get_function(pinctrl_dev*, unsigned int)'
  [A] 'function int pinmux_generic_get_function_count(pinctrl_dev*)'
  [A] 'function int pinmux_generic_get_function_groups(pinctrl_dev*, unsigned int, const char* const**, unsigned int* const)'
  [A] 'function const char* pinmux_generic_get_function_name(pinctrl_dev*, unsigned int)'
  [A] 'function int posix_clock_register(posix_clock*, device*)'
  [A] 'function void posix_clock_unregister(posix_clock*)'
  [A] 'function power_supply* power_supply_get_by_phandle(device_node*, const char*)'
  [A] 'function int regmap_attach_dev(device*, regmap*, const regmap_config*)'
  [A] 'function int regulator_map_voltage_iterate(regulator_dev*, int, int)'
  [A] 'function int reset_control_status(reset_control*)'
  [A] 'function device* rpmsg_find_device(device*, rpmsg_channel_info*)'
  [A] 'function int rpmsg_sendto(rpmsg_endpoint*, void*, int, u32)'
  [A] 'function void rproc_add_carveout(rproc*, rproc_mem_entry*)'
  [A] 'function void* rproc_da_to_va(rproc*, u64, int)'
  [A] 'function resource_table* rproc_elf_find_loaded_rsc_table(rproc*, const firmware*)'
  [A] 'function int rproc_elf_load_rsc_table(rproc*, const firmware*)'
  [A] 'function int rproc_elf_load_segments(rproc*, const firmware*)'
  [A] 'function int rproc_elf_sanity_check(rproc*, const firmware*)'
  [A] 'function rproc_mem_entry* rproc_mem_entry_init(device*, void*, dma_addr_t, int, u32, int (rproc*, rproc_mem_entry*)*, int (rproc*, rproc_mem_entry*)*, const char*, ...)'
  [A] 'function rproc_mem_entry* rproc_of_resm_mem_entry_init(device*, u32, int, u32, const char*, ...)'
  [A] 'function irqreturn_t rproc_vq_interrupt(rproc*, int)'
  [A] 'function int schedule_hrtimeout(ktime_t*, const hrtimer_mode)'
  [A] 'function int sdhci_execute_tuning(mmc_host*, u32)'
  [A] 'function int sdhci_resume_host(sdhci_host*)'
  [A] 'function int sdhci_suspend_host(sdhci_host*)'
  [A] 'function void snd_dmaengine_pcm_set_config_from_dai_data(const snd_pcm_substream*, const snd_dmaengine_dai_dma_data*, dma_slave_config*)'
  [A] 'function int snd_pcm_format_big_endian(snd_pcm_format_t)'
  [A] 'function int snd_pcm_format_linear(snd_pcm_format_t)'
  [A] 'function int snd_pcm_format_unsigned(snd_pcm_format_t)'
  [A] 'function snd_pcm_substream* snd_soc_dpcm_get_substream(snd_soc_pcm_runtime*, int)'
  [A] 'function regmap* syscon_regmap_lookup_by_compatible(const char*)'
  [A] 'function int thermal_zone_bind_cooling_device(thermal_zone_device*, int, thermal_cooling_device*, unsigned long int, unsigned long int, unsigned int)'
  [A] 'function u64 timecounter_cyc2time(timecounter*, u64)'
  [A] 'function void tso_build_data(sk_buff*, tso_t*, int)'
  [A] 'function void tso_build_hdr(sk_buff*, char*, tso_t*, int, bool)'
  [A] 'function int tso_count_descs(sk_buff*)'
  [A] 'function void tso_start(sk_buff*, tso_t*)'
  [A] 'function int tty_port_install(tty_port*, tty_driver*, tty_struct*)'
  [A] 'function int tty_prepare_flip_string(tty_port*, unsigned char**, size_t)'
  [A] 'function void* typec_switch_get_drvdata(typec_switch*)'
  [A] 'function typec_switch* typec_switch_register(device*, const typec_switch_desc*)'
  [A] 'function void typec_switch_unregister(typec_switch*)'
  [A] 'function void uart_get_rs485_mode(device*, serial_rs485*)'
  [A] 'function v4l2_async_subdev* v4l2_async_notifier_add_fwnode_subdev(v4l2_async_notifier*, fwnode_handle*, unsigned int)'
  [A] 'function int v4l2_async_notifier_add_subdev(v4l2_async_notifier*, v4l2_async_subdev*)'
  [A] 'function void v4l2_async_notifier_cleanup(v4l2_async_notifier*)'
  [A] 'function void v4l2_async_notifier_init(v4l2_async_notifier*)'
  [A] 'function int v4l2_async_notifier_register(v4l2_device*, v4l2_async_notifier*)'
  [A] 'function void v4l2_async_notifier_unregister(v4l2_async_notifier*)'
  [A] 'function int v4l2_async_register_subdev(v4l2_subdev*)'
  [A] 'function int v4l2_async_subdev_notifier_register(v4l2_subdev*, v4l2_async_notifier*)'
  [A] 'function void v4l2_async_unregister_subdev(v4l2_subdev*)'
  [A] 'function void v4l2_ctrl_auto_cluster(unsigned int, v4l2_ctrl**, u8, bool)'
  [A] 'function v4l2_ctrl* v4l2_ctrl_new_std_menu_items(v4l2_ctrl_handler*, const v4l2_ctrl_ops*, u32, u8, u64, u8, const char* const*)'
  [A] 'function __poll_t v4l2_ctrl_poll(file*, poll_table_struct*)'
  [A] 'function int v4l2_ctrl_subdev_log_status(v4l2_subdev*)'
  [A] 'function int v4l2_g_parm_cap(video_device*, v4l2_subdev*, v4l2_streamparm*)'
  [A] 'function int v4l2_s_parm_cap(video_device*, v4l2_subdev*, v4l2_streamparm*)'
  [A] 'function int vm_munmap(unsigned long int, unsigned long int)'

5 Added variables:

  [A] 'const clk_ops clk_divider_ops'
  [A] 'const clk_ops clk_fractional_divider_ops'
  [A] 'const clk_ops clk_gate_ops'
  [A] 'const clk_ops clk_mux_ops'
  [A] 'unsigned int hrtimer_resolution'

Bug: 159736148
Signed-off-by: Jindong Yue <jindong.yue@nxp.com>
Change-Id: Icf5ee355ae27eef5f3bf32cc5bbfed3a33ce7152
2021-03-10 20:18:36 +00:00
Masaya Takahashi
5327444e83 ANDROID: GKI: Add Sony KMI symbol list
add initial abi_gki_aarch64_sony file.

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

5 Added functions:

  [A] 'function gpio_desc* devm_gpiod_get_from_of_node(device*, device_node*, const char*, int, gpiod_flags, const char*)'
  [A] 'function void devm_gpiod_unhinge(device*, gpio_desc*)'
  [A] 'function const char* devm_kstrdup_const(device*, const char*, gfp_t)'
  [A] 'function void led_trigger_blink_oneshot(led_trigger*, unsigned long int*, unsigned long int*, int)'
  [A] 'function int request_any_context_irq(unsigned int, irq_handler_t, unsigned long int, const char*, void*)'

Bug: 176874947
Change-Id: Ic17a468ed326e94263e636df6ca75b2fbcced7f6
Signed-off-by: Masaya Takahashi <masaya.a.takahashi@sony.com>
2021-01-08 10:14:50 +09:00
Chanho Park
0b4009b30f ANDROID: GKI: initial upload list for exynosauto soc
This patch adds to upload initial symbol list for Exynosauto SoC.
To find what has updated from GKI symbol easily, this list does not
include full list of symbol. So, nothing has added to GKI ABI symbols.

Bug: 172885440
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Change-Id: I41cc355687a5ba859ad601b8f1efdad13e52f20f
2020-11-12 17:32:06 +09:00
Quentin Perret
0ce2100bcf ANDROID: Drop abi_gki_aarch64_workarounds
ehci_handshake was added to the symbol list as a temporary workaround
for CRC-related issues in the ehci code. But since this has now been
fixed, let's drop the unnecessary symbol list altogether.

Bug: 167230325
Signed-off-by: Quentin Perret <qperret@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8f56b01ff9bed8e0d417f8c90adb7c32480d55cf
2020-10-15 17:21:03 +02:00
wangting11
de645857ee ANDROID: GKI: add allowed list file for xiaomi
add abi_gki_aarch64_xiaomi

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 int __kfifo_from_user(__kfifo*, void*, unsigned long int, unsigned int*)'
  [A] 'function int kobject_set_name(kobject*, const char*, ...)'

Bug: 169498251
Change-Id: I43d9c59e8833e76f943e3d1df066165e2fd60dc2
Signed-off-by: wangting11 <wangting11@xiaomi.com>
2020-09-30 12:02:30 +08:00
Will McVicker
b8f04a0f4a ANDROID: drop KERNEL_DIR setting in build.config.common
And replace many references of ${ROOT_DIR}/common with
${ROOT_DIR}/${KERNEL_DIR}, which makes it a lot easier
to branch off of ACK and update the KERNEL_DIR.

The variable of KERNEL_DIR will be set in build/_setup_env.sh
to the directory of the build config file by default if it's
not set explicitly in the build config file or in environment.

Test: build test with following configs
        common/build.config.gki.aarch64
        common/build.config.db845c
        common/build.config.hikey960
        common-modules/virtual-device/build.config.cuttlefish.aarch64
        common-modules/virtual-device/build.config.goldfish.aarch64

Bug: 162785964
Change-Id: I790ac0ded10bd790484f14c6f93d53e06c38b830
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
(cherry picked from commit 931718fa65fe5e34d143250c048f591a7d74e5f8)
2020-09-25 14:50:31 +08:00
Matthias Maennich
415c56cf53 ANDROID: Address flaky behaviour in genksyms affecting CRC stability.
Commit 1278a5bf16 ("ANDROID: ABI: Added symbols for allwinner")
introduced ehci_* symbols to the symbol list. Due to a bug in genksyms,
the CRC of those is not resilient to whether other symbols are exported
as well. In particular, the CRC changes with the export/trimming of
ehci_handshake. Add an artificial symbol list to contain ehci_handshake
to make this stable.

Also update the ABI representation accordingly:

1 Added function:

  [A] 'function int ehci_handshake(ehci_hcd*, void*, u32, u32, int)'

Bug: 167230325
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I58d3a93f49e70a66f34b66f9f8784b9c19c5a58b
2020-09-10 13:46:00 +00:00
Peter Wuw
71692ac54d ANDROID: GKI: add abi_gki_aarch64_oneplus
Add some symbols to symbol list included by oem modules.

Bug: 165594476
Change-Id: Ib6113961bd18f8ca0c6e41fe30768fd3fba3d2ea
Signed-off-by: Peter Wuw <peter.wuw@oneplus.com>
[ shorted the list to get the initial file mergable, more symbols can be
  added later - gregkh]
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-09-04 15:33:39 +02:00
Giuliano Procida
7b433370b3 ANDROID: GKI: prevent removal of monitored symbols
For aarch64 GKI builds, enable KMI_SYMBOL_LIST_ADD_ONLY.

Bug: 165839948
Change-Id: I5564da9ec054ae003a28f01a41dbeede6ab23afb
Signed-off-by: Giuliano Procida <gprocida@google.com>
2020-09-04 08:08:40 +00:00
Jungrae Kim
3d6b9391da ANDROID: GKI: add abi_gki_aarch64_galaxy
Add initial abi_gki_aarch64_galaxy file, with no new symbols being
needed, they will be added later.

Bug: 166527556
Change-Id: I09a44ce129fc8d689150303887d5ba6c5e2bffce
Signed-off-by: Jungrae Kim <jryu.kim@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-09-03 16:25:18 +02:00
Steve Muckle
385cd19147 ANDROID: GKI: add abi_gki_aarch64_oplus
Leaf changes summary: 4 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 4 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

4 Added functions:

  [A] 'function long long unsigned int drm_crtc_vblank_count(drm_crtc*)'
  [A] 'function wait_queue_head_t* drm_crtc_vblank_waitqueue(drm_crtc*)'
  [A] 'function int remove_proc_subtree(const char*, proc_dir_entry*)'
  [A] 'function long int wait_for_completion_killable_timeout(completion*, unsigned long int)'

Bug: 163074366
Change-Id: I2b3ef4e9e59ebd8168064a88375afd0e6c9769b0
Signed-off-by: Steve Muckle <smuckle@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2020-08-13 11:48:42 +02:00
Chenggang Wang
b7b08548a5 ANDROID: GKI: Add some symbols to symbol list
Add some symbols to symbol list included by oem modules.

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

64 Added functions:

  [A] 'function void __bitmap_or(unsigned long int*, const unsigned long
int*, const unsigned long int*, unsigned int)'
  [A] 'function int __genphy_config_aneg(phy_device*, bool)'
  [A] 'function unsigned int __kfifo_in_r(__kfifo*, void*, unsigned int,
size_t)'
  [A] 'function unsigned int __kfifo_len_r(__kfifo*, size_t)'
  [A] 'function unsigned int __kfifo_out_r(__kfifo*, void*, unsigned
int, size_t)'
  [A] 'function int __mdiobus_read(mii_bus*, int, u32)'
  [A] 'function int __mdiobus_write(mii_bus*, int, u32, u16)'
  [A] 'function scsi_device* __scsi_add_device(Scsi_Host*, uint, uint,
u64, void*)'
  [A] 'function void blk_pm_runtime_init(request_queue*, device*)'
  [A] 'function void blk_queue_update_dma_pad(request_queue*, unsigned
int)'
  [A] 'function void bsg_job_done(bsg_job*, int, unsigned int)'
  [A] 'function void bsg_remove_queue(request_queue*)'
  [A] 'function request_queue* bsg_setup_queue(device*, const char*,
bsg_job_fn*, bsg_timeout_fn*, int)'
  [A] 'function int device_set_wakeup_enable(device*, bool)'
  [A] 'function void devm_gpiod_put(device*, gpio_desc*)'
  [A] 'function void disk_part_iter_exit(disk_part_iter*)'
  [A] 'function void disk_part_iter_init(disk_part_iter*, gendisk*,
unsigned int)'
  [A] 'function hd_struct* disk_part_iter_next(disk_part_iter*)'
  [A] 'function void done_path_create(path*, dentry*)'
  [A] 'function int down_read_trylock(rw_semaphore*)'
  [A] 'function void end_buffer_write_sync(buffer_head*, int)'
  [A] 'function phy_device* fixed_phy_register(unsigned int,
fixed_phy_status*, device_node*)'
  [A] 'function void fixed_phy_unregister(phy_device*)'
  [A] 'function int genphy_read_status(phy_device*)'
  [A] 'function int genphy_suspend(phy_device*)'
  [A] 'function unsigned long int int_sqrt(unsigned long int)'
  [A] 'function irq_domain* irq_domain_add_simple(device_node*, unsigned
int, unsigned int, const irq_domain_ops*, void*)'
  [A] 'function u64 jiffies64_to_nsecs(u64)'
  [A] 'function void keyslot_manager_destroy(keyslot_manager*)'
  [A] 'function void
keyslot_manager_reprogram_all_keys(keyslot_manager*)'
  [A] 'function bool kmsg_dump_get_line(kmsg_dumper*, bool, char*,
size_t, size_t*)'
  [A] 'function void ktime_get_coarse_ts64(timespec64*)'
  [A] 'function int mdiobus_read(mii_bus*, int, unsigned int)'
  [A] 'function int mdiobus_write(mii_bus*, int, unsigned int, unsigned
short int)'
  [A] 'function ssize_t mipi_dsi_dcs_write(mipi_dsi_device*, u8, void*,
size_t)'
  [A] 'function int of_mdiobus_register(mii_bus*, device_node*)'
  [A] 'function int phy_connect_direct(net_device*, phy_device*, void
(net_device*)*, phy_interface_t)'
  [A] 'function int phy_drivers_register(phy_driver*, int, module*)'
  [A] 'function void phy_drivers_unregister(phy_driver*, int)'
  [A] 'function int phy_ethtool_get_eee(phy_device*, ethtool_eee*)'
  [A] 'function void phy_ethtool_ksettings_get(phy_device*,
ethtool_link_ksettings*)'
  [A] 'function int phy_ethtool_ksettings_set(phy_device*, const
ethtool_link_ksettings*)'
  [A] 'function int phy_ethtool_set_eee(phy_device*, ethtool_eee*)'
  [A] 'function int phy_ethtool_set_wol(phy_device*, ethtool_wolinfo*)'
  [A] 'function phy_device* phy_find_first(mii_bus*)'
  [A] 'function int phy_read_mmd(phy_device*, int, unsigned int)'
  [A] 'function int phy_register_fixup_for_uid(u32, u32, int
(phy_device*)*)'
  [A] 'function void phy_remove_link_mode(phy_device*, u32)'
  [A] 'function int phy_restore_page(phy_device*, int, int)'
  [A] 'function int phy_save_page(phy_device*)'
  [A] 'function int phy_unregister_fixup_for_uid(u32, u32)'
  [A] 'function int phy_write_mmd(phy_device*, int, unsigned int,
unsigned short int)'
  [A] 'function void rt_mutex_lock(rt_mutex*)'
  [A] 'function void rt_mutex_unlock(rt_mutex*)'
  [A] 'function int scsi_dma_map(scsi_cmnd*)'
  [A] 'function void scsi_dma_unmap(scsi_cmnd*)'
  [A] 'function void scsi_remove_device(scsi_device*)'
  [A] 'function int set_blocksize(block_device*, int)'
  [A] 'function int single_open_size(file*, int (seq_file*, void*)*,
void*, unsigned long int)'
  [A] 'function int snd_soc_runtime_set_dai_fmt(snd_soc_pcm_runtime*,
unsigned int)'
  [A] 'function usb_host_interface* usb_altnum_to_altsetting(const
usb_interface*, unsigned int)'
  [A] 'function void usb_scuttle_anchored_urbs(usb_anchor*)'
  [A] 'function int usbnet_get_ethernet_addr(usbnet*, int)'
  [A] 'function int usbnet_manage_power(usbnet*, int)'

Bug: 159686234
Change-Id: Ia3baa4c8ef3cfde77c524eaea37eb5c17d7cd4d9
Signed-off-by: Chenggang Wang <wangchenggang@vivo.com>
2020-08-07 18:15:13 +08:00
Will McVicker
9af7526757 ANDROID: build: update ABI definitions
Update these defines to be inclusive:
* KMI_WHITELIST -> KMI_SYMBOL_LIST
* ADDITIONAL_KMI_WHITELISTS -> ADDITIONAL_KMI_SYMBOL_LISTS
* KMI_WHITELIST_STRICT_MODE -> KMI_SYMBOL_LIST_STRICT_MODE

Change-Id: Ie247fb7a1ef9ff27c06003ab0861fc9a790b10c6
Signed-off-by: Will McVicker <willmcvicker@google.com>
Bug: 161912438
2020-07-28 17:39:34 +00:00
Greg Kroah-Hartman
056684c0d2 ANDROID: GKI: move abi files to android/
It's good to move the abi files out of the root kernel directory, so
move them to android/ to make it obvious these are add-on things, not
anything that is upstream.

Bug: 155573384
Cc: Matthias Maennich <maennich@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I9f6c2269a1c4e8e4233971adc805cb7584d455f9
2020-07-06 14:13:46 +02:00
Greg Kroah-Hartman
9c233e34ce ANDROID: GKI: drop unneeded "_whitelist" off of symbol filenames
No need for "_whitelist" to be on the abi symbol files, it's just a
list of abi symbols we are going to support.

Bug: 160578303
Cc: Matthias Maennich <maennich@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I0e4c449550f41ff364a09a2987e877a62b986be7
2020-07-06 14:13:26 +02:00
Matthias Maennich
e29f0087eb ANDROID: Enforce KMI stability
This declares ABI/KMI stability for the gki aarch64 config.

Bug: 134674532
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I2e35c1281ee66ef22d4fce0fcce1269e827f8594
2020-05-06 12:10:15 +00:00
Quentin Perret
4222cae78a ANDROID: Add abi_gki_aarch64_exynos_whitelist
Copy the latest exynos whitelist over from android-5.4.

Bug: 151190212
Signed-off-by: Quentin Perret <qperret@google.com>
Change-Id: Ie019ddd319161e85082370a4ae7068d50ff021fd
2020-05-01 10:19:00 +01:00
Quentin Perret
d236ae1b70 ANDROID: build.config.gki.aarch64: Enable WHITELIST_STRICT_MODE
This will ensure we get a build-time error if the whitelist does not
match the KMI resulting from a build. This indicates that some
whitelisted symbols are not actually exported, or that we export
non-whitelisted symbols. This is non-desirable either way.

Bug: 151133259
Bug: 149980028
Signed-off-by: Quentin Perret <qperret@google.com>
Change-Id: Ifaa1ae8a15f09f3791ed4487920d7751062fa210
2020-05-01 10:13:55 +01:00
zhaoyouyi
7dd4f5d051 ANDROID: ABI/Whitelist: update for allwinner.
Add initial ABI whitelist file for Allwinner SoC,
and updates the ABI representation accordingly.

Total of 154 functions and 2 variables were added.

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

154 Added functions:

  [A] 'function void __dev_kfree_skb_irq(sk_buff*, skb_free_reason)'
  [A] 'function void __devm_release_region(device*, resource*, resource_size_t, resource_size_t)'
  [A] 'function void __hw_addr_init(netdev_hw_addr_list*)'
  [A] 'function int __hw_addr_sync(netdev_hw_addr_list*, netdev_hw_addr_list*, int)'
  [A] 'function void __hw_addr_unsync(netdev_hw_addr_list*, netdev_hw_addr_list*, int)'
  [A] 'function void __lock_page(page*)'
  [A] 'function int __media_entity_setup_link(media_link*, u32)'
  [A] 'function unsigned int __sw_hweight16(unsigned int)'
  [A] 'function void* __vmalloc(unsigned long int, gfp_t, pgprot_t)'
  [A] 'function void __wait_on_buffer(buffer_head*)'
  [A] 'function int block_is_partially_uptodate(page*, unsigned long int, unsigned long int)'
  [A] 'function int buffer_migrate_page(address_space*, page*, page*, migrate_mode)'
  [A] 'function void cfg80211_assoc_timeout(net_device*, cfg80211_bss*)'
  [A] 'function void cfg80211_auth_timeout(net_device*, const u8*)'
  [A] 'function unsigned int cfg80211_classify8021d(sk_buff*, cfg80211_qos_map*)'
  [A] 'function void cfg80211_cqm_pktloss_notify(net_device*, const u8*, u32, gfp_t)'
  [A] 'function void cfg80211_rx_assoc_resp(net_device*, cfg80211_bss*, const u8*, size_t, int, const u8*, size_t)'
  [A] 'function void cfg80211_rx_mlme_mgmt(net_device*, const u8*, size_t)'
  [A] 'function void cfg80211_sched_scan_stopped(wiphy*, u64)'
  [A] 'function void cfg80211_tx_mlme_mgmt(net_device*, const u8*, size_t)'
  [A] 'function int class_create_file_ns(class*, const class_attribute*, void*)'
  [A] 'function void class_remove_file_ns(class*, const class_attribute*, void*)'
  [A] 'function int clk_notifier_register(clk*, notifier_block*)'
  [A] 'function unsigned int crc32_be(unsigned int, const unsigned char*, unsigned long int)'
  [A] 'function void create_empty_buffers(page*, unsigned long int, unsigned long int)'
  [A] 'function int crypto_register_ahash(ahash_alg*)'
  [A] 'function int crypto_register_rng(rng_alg*)'
  [A] 'function int crypto_unregister_ahash(ahash_alg*)'
  [A] 'function void crypto_unregister_rng(rng_alg*)'
  [A] 'function dentry* d_add_ci(dentry*, inode*, qstr*)'
  [A] 'function dentry* d_obtain_alias(inode*)'
  [A] 'function int dev_pm_set_wake_irq(device*, int)'
  [A] 'function void device_remove_groups(device*, const attribute_group**)'
  [A] 'function int devm_devfreq_register_opp_notifier(device*, devfreq*)'
  [A] 'function void* devm_of_iomap(device*, device_node*, int, resource_size_t*)'
  [A] 'function int down_interruptible(semaphore*)'
  [A] 'function void dump_page(page*, const char*)'
  [A] 'function void end_buffer_read_sync(buffer_head*, int)'
  [A] 'function frame_vector* frame_vector_create(unsigned int)'
  [A] 'function void frame_vector_destroy(frame_vector*)'
  [A] 'function int frame_vector_to_pages(frame_vector*)'
  [A] 'function void frame_vector_to_pfns(frame_vector*)'
  [A] 'function unsigned long int gen_pool_best_fit(unsigned long int*, unsigned long int, unsigned long int, unsigned int, void*, gen_pool*, unsigned long int)'
  [A] 'function void gen_pool_set_algo(gen_pool*, void ()*, void*)'
  [A] 'function long long unsigned int gen_pool_virt_to_phys(gen_pool*, unsigned long int)'
  [A] 'function int generic_error_remove_page(address_space*, page*)'
  [A] 'function int generic_file_open(inode*, file*)'
  [A] 'function int get_tree_bdev(fs_context*, void ()*)'
  [A] 'function int get_vaddr_frames(unsigned long int, unsigned int, unsigned int, frame_vector*)'
  [A] 'function void handle_fasteoi_irq(irq_desc*)'
  [A] 'function void ieee80211_amsdu_to_8023s(sk_buff*, sk_buff_head*, const u8*, nl80211_iftype, const unsigned int, const u8*, const u8*)'
  [A] 'function const element* ieee80211_bss_get_elem(cfg80211_bss*, u8)'
  [A] 'function int ieee80211_data_to_8023_exthdr(sk_buff*, ethhdr*, const u8*, nl80211_iftype, u8)'
  [A] 'function int ieee80211_radiotap_iterator_init(ieee80211_radiotap_iterator*, ieee80211_radiotap_header*, int, const ieee80211_radiotap_vendor_namespaces*)'
  [A] 'function int ieee80211_radiotap_iterator_next(ieee80211_radiotap_iterator*)'
  [A] 'function void iget_failed(inode*)'
  [A] 'function inode* iget_locked(super_block*, unsigned long int)'
  [A] 'function void ihold(inode*)'
  [A] 'function void inode_nohighmem(inode*)'
  [A] 'function void int_to_scsilun(u64, scsi_lun*)'
  [A] 'function void io_schedule()'
  [A] 'function iommu_group* iommu_group_alloc()'
  [A] 'function int iommu_group_register_notifier(iommu_group*, notifier_block*)'
  [A] 'function bool is_bad_inode(inode*)'
  [A] 'function void kernel_param_lock(module*)'
  [A] 'function void kernel_param_unlock(module*)'
  [A] 'function void* kmalloc_order(size_t, gfp_t, unsigned int)'
  [A] 'function void ll_rw_block(int, int, int, buffer_head**)'
  [A] 'function nls_table* load_nls_default()'
  [A] 'function void logfc(fs_context*, const char*, ...)'
  [A] 'function void make_bad_inode(inode*)'
  [A] 'function int media_create_pad_link(media_entity*, u16, media_entity*, u16, u32)'
  [A] 'function media_link* media_entity_find_link(media_pad*, media_pad*)'
  [A] 'function media_pad* media_entity_remote_pad(const media_pad*)'
  [A] 'function int media_entity_setup_link(media_link*, u32)'
  [A] 'function int media_graph_walk_init(media_graph*, media_device*)'
  [A] 'function media_entity* media_graph_walk_next(media_graph*)'
  [A] 'function void media_graph_walk_start(media_graph*, media_entity*)'
  [A] 'function int of_clk_hw_register(device_node*, clk_hw*)'
  [A] 'function i2c_client* of_find_i2c_device_by_node(device_node*)'
  [A] 'function device_node* of_find_node_by_type(device_node*, const char*)'
  [A] 'function void* of_io_request_and_map(device_node*, int, const char*)'
  [A] 'function pwm_device* of_pwm_xlate_with_flags(pwm_chip*, const of_phandle_args*)'
  [A] 'function const char* page_get_link(dentry*, inode*, delayed_call*)'
  [A] 'function page* pagecache_get_page(address_space*, unsigned long int, int, unsigned int)'
  [A] 'function pinctrl* pinctrl_get(device*)'
  [A] 'function int pinctrl_gpio_set_config(unsigned int, unsigned long int)'
  [A] 'function void put_vaddr_frames(frame_vector*)'
  [A] 'function page* read_cache_page(address_space*, unsigned long int, void ()*, void*)'
  [A] 'function int reset_controller_register(reset_controller_dev*)'
  [A] 'function unsigned long int round_jiffies_relative(unsigned long int)'
  [A] 'function void rq_flush_dcache_pages(request*)'
  [A] 'function void scmd_printk(const char*, const scsi_cmnd*, const char*, ...)'
  [A] 'function void scsi_block_requests(Scsi_Host*)'
  [A] 'function int scsi_change_queue_depth(scsi_device*, int)'
  [A] 'function void scsi_print_command(scsi_cmnd*)'
  [A] 'function void scsi_unblock_requests(Scsi_Host*)'
  [A] 'function unsigned int sdio_align_size(sdio_func*, unsigned int)'
  [A] 'function int setup_irq(unsigned int, irqaction*)'
  [A] 'function int snd_dmaengine_pcm_close_release_chan(snd_pcm_substream*)'
  [A] 'function dma_chan* snd_dmaengine_pcm_get_chan(snd_pcm_substream*)'
  [A] 'function int snd_dmaengine_pcm_open_request_chan(snd_pcm_substream*, dma_filter_fn, void*)'
  [A] 'function snd_pcm_uframes_t snd_dmaengine_pcm_pointer(snd_pcm_substream*)'
  [A] 'function int snd_dmaengine_pcm_trigger(snd_pcm_substream*, int)'
  [A] 'function int snd_hwparams_to_dma_slave_config(const snd_pcm_substream*, const snd_pcm_hw_params*, dma_slave_config*)'
  [A] 'function int snd_soc_add_card_controls(snd_soc_card*, const snd_kcontrol_new*, int)'
  [A] 'function int snd_soc_dai_set_clkdiv(snd_soc_dai*, int, int)'
  [A] 'function int snd_soc_dai_set_pll(snd_soc_dai*, int, int, unsigned int, unsigned int)'
  [A] 'function int snd_soc_register_card(snd_soc_card*)'
  [A] 'function spi_controller* spi_busnum_to_master(u16)'
  [A] 'function void spi_unregister_device(spi_device*)'
  [A] 'function void truncate_inode_pages_final(address_space*)'
  [A] 'function unsigned int uart_get_divisor(uart_port*, unsigned int)'
  [A] 'function void uart_handle_cts_change(uart_port*, unsigned int)'
  [A] 'function void uart_handle_dcd_change(uart_port*, unsigned int)'
  [A] 'function void uart_insert_char(uart_port*, unsigned int, unsigned int, unsigned int, unsigned int)'
  [A] 'function int unregister_console(console*)'
  [A] 'function void unregister_syscore_ops(syscore_ops*)'
  [A] 'function int usb_alloc_streams(usb_interface*, usb_host_endpoint**, unsigned int, unsigned int, gfp_t)'
  [A] 'function int usb_bulk_msg(usb_device*, unsigned int, void*, int, int*, int)'
  [A] 'function int usb_free_streams(usb_interface*, usb_host_endpoint**, unsigned int, gfp_t)'
  [A] 'function void usb_kill_anchored_urbs(usb_anchor*)'
  [A] 'function int usb_reset_configuration(usb_device*)'
  [A] 'function int usb_set_interface(usb_device*, int, int)'
  [A] 'function void usb_unanchor_urb(urb*)'
  [A] 'function int usb_wait_anchor_empty_timeout(usb_anchor*, unsigned int)'
  [A] 'function void v4l2_ctrl_cluster(unsigned int, v4l2_ctrl**)'
  [A] 'function v4l2_ctrl* v4l2_ctrl_new_int_menu(v4l2_ctrl_handler*, const v4l2_ctrl_ops*, u32, u8, u8, const s64*)'
  [A] 'function int v4l2_ctrl_subdev_subscribe_event(v4l2_subdev*, v4l2_fh*, v4l2_event_subscription*)'
  [A] 'function int v4l2_ctrl_subscribe_event(v4l2_fh*, const v4l2_event_subscription*)'
  [A] 'function int v4l2_event_subdev_unsubscribe(v4l2_subdev*, v4l2_fh*, v4l2_event_subscription*)'
  [A] 'function int v4l2_g_ctrl(v4l2_ctrl_handler*, v4l2_control*)'
  [A] 'function v4l2_subdev* v4l2_i2c_new_subdev(v4l2_device*, i2c_adapter*, const char*, u8, const unsigned short int*)'
  [A] 'function void v4l2_i2c_subdev_init(v4l2_subdev*, i2c_client*, const v4l2_subdev_ops*)'
  [A] 'function v4l2_subdev* v4l2_spi_new_subdev(v4l2_device*, spi_controller*, spi_board_info*)'
  [A] 'function void v4l_bound_align_image(u32*, unsigned int, unsigned int, unsigned int, u32*, unsigned int, unsigned int, unsigned int, unsigned int)'
  [A] 'function int vb2_fop_mmap(file*, vm_area_struct*)'
  [A] 'function __poll_t vb2_fop_poll(file*, poll_table*)'
  [A] 'function ssize_t vb2_fop_read(file*, char*, size_t, loff_t*)'
  [A] 'function int vb2_fop_release(file*)'
  [A] 'function int vb2_ioctl_dqbuf(file*, void*, v4l2_buffer*)'
  [A] 'function int vb2_ioctl_expbuf(file*, void*, v4l2_exportbuffer*)'
  [A] 'function int vb2_ioctl_qbuf(file*, void*, v4l2_buffer*)'
  [A] 'function int vb2_ioctl_querybuf(file*, void*, v4l2_buffer*)'
  [A] 'function int vb2_ioctl_reqbufs(file*, void*, v4l2_requestbuffers*)'
  [A] 'function int vb2_ioctl_streamoff(file*, void*, v4l2_buf_type)'
  [A] 'function int vb2_ioctl_streamon(file*, void*, v4l2_buf_type)'
  [A] 'function void vb2_ops_wait_finish(vb2_queue*)'
  [A] 'function void vb2_ops_wait_prepare(vb2_queue*)'
  [A] 'function void* vb2_plane_cookie(vb2_buffer*, unsigned int)'
  [A] 'function int zlib_inflate(z_stream_s*, int)'
  [A] 'function int zlib_inflateEnd(z_stream_s*)'
  [A] 'function int zlib_inflateInit2(z_stream_s*, int)'
  [A] 'function int zlib_inflate_workspacesize()'

2 Added variables:

  [A] 'const unsigned char bridge_tunnel_header[6]'
  [A] 'const file_operations generic_ro_fops'

Bug: 155001886
Change-Id: Iea31e0b21432c399c1dcb6b808954520f15b515b
Signed-off-by: zhaoyouyi <zhaoyouyi@allwinnertech.com>
2020-04-26 16:59:58 +00: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
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
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
Quentin Perret
580b44458c ANDROID: build.config.gki.aarch64: enable symbol trimming
Bug: 148277666
Signed-off-by: Quentin Perret <qperret@google.com>
Change-Id: Ic705f000188b3677b929e3c0428cc6b97782c045
2020-02-28 10:55:21 +00: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
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
b9962accde ANDROID: add initial ABI whitelist for android-5.4
Bug: 145692847
Change-Id: I52e4b9b6bc025a86eb4f75bc7643a69b1e5c0d93
Signed-off-by: Matthias Maennich <maennich@google.com>
2019-12-18 10:56:40 +00:00
Matthias Maennich
6e792fdbdf ANDROID: refactor build.config files to remove duplication
The build.config.* files largely contain duplicate information by their
nature. Reorganize them reduce duplication and to allow adding new
configurations without copying the definitions again.

Bug: 140224784
Change-Id: I6a3810a125b0ed48591690ca33bb5c02be58218a
Signed-off-by: Matthias Maennich <maennich@google.com>
2019-08-30 14:55:29 +01:00
Ram Muthiah
2dae5b0e71 Adding GKI Ramdisk to gki config
Test: Treehugger
Bug: 132629930
Change-Id: I3773d828cea4ab0ea8cfaef8a533a5ae925f037c
Signed-of-by: Ram Muthiah <rammuthiah@google.com>
2019-08-14 18:19:21 +00:00
Matthias Maennich
cf045d8837 ANDROID: build configs: switch prebuilt path location
Move to a kernel specific prebuilt path.

Bug: 135922132
Change-Id: I8755f8f0154eecc86ad598be7a7811e9d8f068ed
Signed-off-by: Matthias Maennich <maennich@google.com>
2019-07-23 15:15:32 +01:00
Matthias Maennich
d5458786d8 ANDROID: gki/cuttlefish defconfigs: use prebuilt build-tools
Rather than relying on the hosts build tools, use a set of prebuilt
build-tools. These are tools like awk, cat, cp, hostname, python, rm,
sed, etc.

Bug: 135922132
Change-Id: Ie6b0bd208c684c9f153eb2f0bfac4712e02e8e05
Signed-off-by: Matthias Maennich <maennich@google.com>
2019-06-24 18:10:19 +01:00
Matthias Maennich
31835ae1d7 ANDROID: ABI out: Use the extension .xml rather then .out
Bug: 133501930
Change-Id: I7ddae7a56593389b0ab13ff765d4e7329ecf5f8d
Signed-off-by: Matthias Maennich <maennich@google.com>
2019-05-29 10:10:14 +01:00
Matthias Maennich
553049f81c ANDROID: Initial abi_gki_aarch64 definition
abi_gki_aarch64.out contains the ABI definition corresponding to the
current sources and the configuration referred to in
build.config.gki.aarch64.

As part of the build.sh tooling it will be copied over into the
distribution for further inspection / analysis. See
https://android-review.googlesource.com/970737 for details on that
process.

This is the initial version of this definition to allow implementation
of workflows around it. It is not considered stable at this point. It is
expected that it will break with significant changes from either
upstream or with changes implemented specific for this tree. Automated
validation is supposed to catch differences between this definition and
the actual binary before they are introduced into the tree. At a later
stage this validation should be part of build.sh itself.

Bug: 133501930
Change-Id: I815940ee13037ad450547e0ab0786e37f0b83d9b
Signed-off-by: Matthias Maennich <maennich@google.com>
2019-05-28 12:38:16 +01:00
Alistair Strachan
bd2c781b52 ANDROID: Move from clang r349610 to r353983c.
Bug: 120439617
Bug: 132097678
Test: make ARCH=arm64 cuttlefish_defconfig && make ARCH=arm64
Test: make ARCH=x86_64 x86_64_cuttlefish_defconfig && make ARCH=x86_64
Change-Id: If5542a39e36fb4de6dd4b4135a22e188f752dd84
Signed-off-by: Alistair Strachan <astrachan@google.com>
2019-05-14 17:23:57 -07:00
Matthias Maennich
4543809cd7 ANDROID: Expose gki_defconfig to build.config
With this in place, the gki_defconfig can be build with build.sh
machinery.

Bug: 132113225
Change-Id: I4c623a866cd41aa4587e4fab1c4e5254f6680542
Signed-off-by: Matthias Maennich <maennich@google.com>
2019-05-14 17:23:56 -07:00