tree 62cb3f31bedf8f3227bf18b8432130421a21226a
parent 6f33bce13afc7691719009456c896720bc960bfb
author wangting11 <wangting11@xiaomi.com> 1622538883 +0800
committer Greg Kroah-Hartman <gregkh@google.com> 1622548074 +0000

ANDROID: GKI: add symbol list file for xiaomi

add abi_gki_aarch64_xiaomi

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

44 Added functions:

  [A] 'function scsi_device* __scsi_add_device(Scsi_Host*, uint, uint, u64, void*)'
  [A] 'function void balance_dirty_pages_ratelimited(address_space*)'
  [A] 'function backing_dev_info* bdi_alloc(int)'
  [A] 'function void bdi_put(backing_dev_info*)'
  [A] 'function int bdi_register(backing_dev_info*, const char*, ...)'
  [A] 'function bool blk_ksm_register(blk_keyslot_manager*, request_queue*)'
  [A] 'function void blk_ksm_reprogram_all_keys(blk_keyslot_manager*)'
  [A] 'function request_queue* blk_mq_init_sq_queue(blk_mq_tag_set*, const blk_mq_ops*, unsigned int, 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 void deactivate_locked_super(super_block*)'
  [A] 'function void dev_pm_opp_remove(device*, unsigned long int)'
  [A] 'function loff_t fixed_size_llseek(file*, loff_t, int, loff_t)'
  [A] 'function void generic_shutdown_super(super_block*)'
  [A] 'function bool kmsg_dump_get_buffer(kmsg_dumper*, bool, char*, size_t, size_t*)'
  [A] 'function int kmsg_dump_register(kmsg_dumper*)'
  [A] 'function void kmsg_dump_rewind(kmsg_dumper*)'
  [A] 'function int kmsg_dump_unregister(kmsg_dumper*)'
  [A] 'function void ktime_get_coarse_real_ts64(timespec64*)'
  [A] 'function void lockref_get(lockref*)'
  [A] 'function void logfc(fc_log*, const char*, char, const char*, ...)'
  [A] 'function block_device* lookup_bdev(const char*)'
  [A] 'function dev_t name_to_dev_t(const char*)'
  [A] 'function nvmem_device* nvmem_register(const nvmem_config*)'
  [A] 'function void nvmem_unregister(nvmem_device*)'
  [A] 'function page* read_cache_page(address_space*, unsigned long int, int (void*, page*)*, void*)'
  [A] 'function void rq_flush_dcache_pages(request*)'
  [A] 'function int scsi_add_host_with_dma(Scsi_Host*, device*, device*)'
  [A] 'function scsi_device* scsi_device_lookup(Scsi_Host*, uint, uint, u64)'
  [A] 'function void scsi_dma_unmap(scsi_cmnd*)'
  [A] 'function Scsi_Host* scsi_host_lookup(unsigned short int)'
  [A] 'function void scsi_host_put(Scsi_Host*)'
  [A] 'function int scsi_is_host_device(const device*)'
  [A] 'function void scsi_remove_host(Scsi_Host*)'
  [A] 'function void scsi_report_bus_reset(Scsi_Host*, int)'
  [A] 'function void scsi_scan_host(Scsi_Host*)'
  [A] 'function super_block* sget_fc(fs_context*, int (super_block*, fs_context*)*, int (super_block*, fs_context*)*)'
  [A] 'function int ufshcd_alloc_host(device*, ufs_hba**)'
  [A] 'function int ufshcd_config_pwr_mode(ufs_hba*, ufs_pa_layer_attr*)'
  [A] 'function void ufshcd_dealloc_host(ufs_hba*)'
  [A] 'function void ufshcd_map_desc_id_to_length(ufs_hba*, desc_idn, int*)'
  [A] 'function int utf16s_to_utf8s(const wchar_t*, int, utf16_endian, u8*, int)'
  [A] 'function void wait_for_device_probe()'

Bug: 189790451
Signed-off-by: wangting11 <wangting11@xiaomi.com>
Change-Id: I1600f2b9e5b393e2c70e2d9cedd907078b7d6789
