Greg Kroah-Hartman 1e9ce09d3e ANDROID: GKI: update abi definitions due to recent changes
Leaf changes summary: 23 artifacts changed
Changed leaf types summary: 10 leaf types changed
Removed/Changed/Added functions summary: 3 Removed, 0 Changed, 10 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

3 Removed functions:

  [D] 'function int fb_register_client(notifier_block*)'
  [D] 'function int fb_unregister_client(notifier_block*)'
  [D] 'function int remove_conflicting_framebuffers(apertures_struct*, const char*, bool)'

10 Added functions:

  [A] 'function void arch_timer_mem_get_cval(u32*, u32*)'
  [A] 'function unsigned long int clk_aggregate_rate(clk_hw*, const clk_core*)'
  [A] 'function void clk_debug_print_hw(clk_core*, seq_file*)'
  [A] 'function int clk_set_flags(clk*, unsigned long int)'
  [A] 'function void clk_unvote_rate_vdd(clk_core*, unsigned long int)'
  [A] 'function int clk_unvote_vdd_level(clk_vdd_class*, int)'
  [A] 'function int clk_vote_rate_vdd(clk_core*, unsigned long int)'
  [A] 'function int clk_vote_vdd_level(clk_vdd_class*, int)'
  [A] 'function napi_struct* get_current_napi_context()'
  [A] 'function void regulator_sync_state(device*)'

'struct cfg80211_ap_settings at cfg80211.h:929:1' changed:
  type size hasn't changed
  1 data member insertion:
    'u32 cfg80211_ap_settings::flags', at offset 3232 (in bits) at cfg80211.h:964:1
  one impacted interface:
    function wiphy* wiphy_new_nm(const cfg80211_ops*, int, const char*)

'struct cfg80211_external_auth_params at cfg80211.h:2871:1' changed:
  type size changed from 416 to 512 (in bits)
  1 data member insertion:
    'const u8* cfg80211_external_auth_params::pmkid', at offset 448 (in bits) at cfg80211.h:2891:1
  2 impacted interfaces:
    function int cfg80211_external_auth_request(net_device*, cfg80211_external_auth_params*, gfp_t)
    function wiphy* wiphy_new_nm(const cfg80211_ops*, int, const char*)

'struct clk_init_data at clk-provider.h:262:1' changed:
  type size changed from 320 to 512 (in bits)
  4 data member insertions:
    'clk_vdd_class* clk_init_data::vdd_class', at offset 320 (in bits) at clk-provider.h:297:1
    'unsigned long int* clk_init_data::rate_max', at offset 384 (in bits) at clk-provider.h:298:1
    'int clk_init_data::num_rate_max', at offset 448 (in bits) at clk-provider.h:299:1
    'unsigned int clk_init_data::bus_cl_id', at offset 480 (in bits) at clk-provider.h:300:1
  there are data member changes:
    type 'typedef u8' of 'clk_init_data::num_parents' changed:
      entity changed from 'typedef u8' to compatible type 'unsigned int'
      type size changed from 8 to 32 (in bits)
    and size changed from 8 to 32 (in bits) (by +24 bits)
  18 impacted interfaces:
    function int __clk_determine_rate(clk_hw*, clk_rate_request*)
    function clk_hw* __clk_get_hw(clk*)
    function int __clk_mux_determine_rate_closest(clk_hw*, clk_rate_request*)
    function unsigned long int clk_hw_get_flags(const clk_hw*)
    function const char* clk_hw_get_name(const clk_hw*)
    function unsigned int clk_hw_get_num_parents(const clk_hw*)
    function clk_hw* clk_hw_get_parent(const clk_hw*)
    function clk_hw* clk_hw_get_parent_by_index(const clk_hw*, unsigned int)
    function unsigned long int clk_hw_get_rate(const clk_hw*)
    function bool clk_hw_is_enabled(const clk_hw*)
    function bool clk_hw_is_prepared(const clk_hw*)
    function unsigned long int clk_hw_round_rate(clk_hw*, unsigned long int)
    function int devm_clk_hw_register(device*, clk_hw*)
    function clk* devm_clk_register(device*, clk_hw*)
    function int devm_of_clk_add_hw_provider(device*, void ()*, void*)
    function unsigned long int divider_recalc_rate(clk_hw*, unsigned long int, unsigned int, const clk_div_table*, unsigned long int, unsigned long int)
    function long int divider_ro_round_rate_parent(clk_hw*, clk_hw*, unsigned long int, unsigned long int*, const clk_div_table*, u8, unsigned long int, unsigned int)
    function long int divider_round_rate_parent(clk_hw*, clk_hw*, unsigned long int, unsigned long int*, const clk_div_table*, u8, unsigned long int)

'struct clk_ops at clk-provider.h:218:1' changed:
  type size changed from 1408 to 1664 (in bits)
  4 data member insertions:
    'void ()* clk_ops::set_flags', at offset 1408 (in bits) at clk-provider.h:269:1
    'void ()* clk_ops::list_registers', at offset 1472 (in bits) at clk-provider.h:270:1
    'void ()* clk_ops::list_rate', at offset 1536 (in bits) at clk-provider.h:272:1
    'void ()* clk_ops::bus_vote', at offset 1600 (in bits) at clk-provider.h:274:1
  18 impacted interfaces:
    function int __clk_determine_rate(clk_hw*, clk_rate_request*)
    function clk_hw* __clk_get_hw(clk*)
    function int __clk_mux_determine_rate_closest(clk_hw*, clk_rate_request*)
    function unsigned long int clk_hw_get_flags(const clk_hw*)
    function const char* clk_hw_get_name(const clk_hw*)
    function unsigned int clk_hw_get_num_parents(const clk_hw*)
    function clk_hw* clk_hw_get_parent(const clk_hw*)
    function clk_hw* clk_hw_get_parent_by_index(const clk_hw*, unsigned int)
    function unsigned long int clk_hw_get_rate(const clk_hw*)
    function bool clk_hw_is_enabled(const clk_hw*)
    function bool clk_hw_is_prepared(const clk_hw*)
    function unsigned long int clk_hw_round_rate(clk_hw*, unsigned long int)
    function int devm_clk_hw_register(device*, clk_hw*)
    function clk* devm_clk_register(device*, clk_hw*)
    function int devm_of_clk_add_hw_provider(device*, void ()*, void*)
    function unsigned long int divider_recalc_rate(clk_hw*, unsigned long int, unsigned int, const clk_div_table*, unsigned long int, unsigned long int)
    function long int divider_ro_round_rate_parent(clk_hw*, clk_hw*, unsigned long int, unsigned long int*, const clk_div_table*, u8, unsigned long int, unsigned int)
    function long int divider_round_rate_parent(clk_hw*, clk_hw*, unsigned long int, unsigned long int*, const clk_div_table*, u8, unsigned long int)

'struct edac_device_ctl_info at edac_device.h:151:1' changed:
  type size changed from 3008 to 3072 (in bits)
  2 data member insertions:
    'int edac_device_ctl_info::panic_on_ce', at offset 288 (in bits) at edac_device.h:162:1
    'bool edac_device_ctl_info::defer_work', at offset 448 (in bits) at edac_device.h:166:1
  there are data member changes:
    'int edac_device_ctl_info::panic_on_ue' offset changed from 288 to 320 (in bits) (by +32 bits)
    'unsigned int edac_device_ctl_info::poll_msec' offset changed from 320 to 352 (in bits) (by +32 bits)
    'edac_dev_sysfs_attribute* edac_device_ctl_info::sysfs_attributes' offset changed from 448 to 512 (in bits) (by +64 bits)
    'bus_type* edac_device_ctl_info::edac_subsys' offset changed from 512 to 576 (in bits) (by +64 bits)
    'int edac_device_ctl_info::op_state' offset changed from 576 to 640 (in bits) (by +64 bits)
    'delayed_work edac_device_ctl_info::work' offset changed from 640 to 704 (in bits) (by +64 bits)
    'void ()* edac_device_ctl_info::edac_check' offset changed from 1344 to 1408 (in bits) (by +64 bits)
    'device* edac_device_ctl_info::dev' offset changed from 1408 to 1472 (in bits) (by +64 bits)
    'const char* edac_device_ctl_info::mod_name' offset changed from 1472 to 1536 (in bits) (by +64 bits)
    'const char* edac_device_ctl_info::ctl_name' offset changed from 1536 to 1600 (in bits) (by +64 bits)
    'const char* edac_device_ctl_info::dev_name' offset changed from 1600 to 1664 (in bits) (by +64 bits)
    'void* edac_device_ctl_info::pvt_info' offset changed from 1664 to 1728 (in bits) (by +64 bits)
    'unsigned long int edac_device_ctl_info::start_time' offset changed from 1728 to 1792 (in bits) (by +64 bits)
    'completion edac_device_ctl_info::removal_complete' offset changed from 1792 to 1856 (in bits) (by +64 bits)
    'char edac_device_ctl_info::name[32]' offset changed from 2048 to 2112 (in bits) (by +64 bits)
    'u32 edac_device_ctl_info::nr_instances' offset changed from 2304 to 2368 (in bits) (by +64 bits)
    'edac_device_instance* edac_device_ctl_info::instances' offset changed from 2368 to 2432 (in bits) (by +64 bits)
    'edac_device_counter edac_device_ctl_info::counters' offset changed from 2432 to 2496 (in bits) (by +64 bits)
    'kobject edac_device_ctl_info::kobj' offset changed from 2496 to 2560 (in bits) (by +64 bits)
  6 impacted interfaces:
    function int edac_device_add_device(edac_device_ctl_info*)
    function edac_device_ctl_info* edac_device_alloc_ctl_info(unsigned int, char*, unsigned int, char*, unsigned int, unsigned int, edac_dev_sysfs_block_attribute*, unsigned int, int)
    function edac_device_ctl_info* edac_device_del_device(device*)
    function void edac_device_free_ctl_info(edac_device_ctl_info*)
    function void edac_device_handle_ce(edac_device_ctl_info*, int, int, const char*)
    function void edac_device_handle_ue(edac_device_ctl_info*, int, int, const char*)

'struct fb_info at fb.h:464:1' changed:
  type size changed from 6912 to 6144 (in bits)
  2 data member deletions:
    'delayed_work fb_info::deferred_work', at offset 5376 (in bits) at fb.h:496:1
    'fb_deferred_io* fb_info::fbdefio', at offset 6080 (in bits) at fb.h:497:1
  there are data member changes:
    'fb_ops* fb_info::fbops' offset changed from 6144 to 5376 (in bits) (by -768 bits)
    'device* fb_info::device' offset changed from 6208 to 5440 (in bits) (by -768 bits)
    'device* fb_info::dev' offset changed from 6272 to 5504 (in bits) (by -768 bits)
    'int fb_info::class_flag' offset changed from 6336 to 5568 (in bits) (by -768 bits)
    offset changed from 6400 to 5632 (in bits) (by -768 bits)
    'unsigned long int fb_info::screen_size' offset changed from 6464 to 5696 (in bits) (by -768 bits)
    'void* fb_info::pseudo_palette' offset changed from 6528 to 5760 (in bits) (by -768 bits)
    'u32 fb_info::state' offset changed from 6592 to 5824 (in bits) (by -768 bits)
    'void* fb_info::fbcon_par' offset changed from 6656 to 5888 (in bits) (by -768 bits)
    'void* fb_info::par' offset changed from 6720 to 5952 (in bits) (by -768 bits)
    'apertures_struct* fb_info::apertures' offset changed from 6784 to 6016 (in bits) (by -768 bits)
    'bool fb_info::skip_vt_switch' offset changed from 6848 to 6080 (in bits) (by -768 bits)
  97 impacted interfaces:
    function backlight_device* devm_backlight_device_register(device*, const char*, device*, void*, const backlight_ops*, const backlight_properties*)
    function int drm_atomic_helper_check(drm_device*, drm_atomic_state*)
    function void drm_atomic_helper_cleanup_planes(drm_device*, drm_atomic_state*)
    function int drm_atomic_helper_commit(drm_device*, drm_atomic_state*, bool)
    function void drm_atomic_helper_commit_modeset_disables(drm_device*, drm_atomic_state*)
    function void drm_atomic_helper_commit_modeset_enables(drm_device*, drm_atomic_state*)
    function void drm_atomic_helper_commit_planes(drm_device*, drm_atomic_state*, unsigned int)
    function drm_atomic_state* drm_atomic_helper_duplicate_state(drm_device*, drm_modeset_acquire_ctx*)
    function int drm_atomic_helper_prepare_planes(drm_device*, drm_atomic_state*)
    function void drm_atomic_helper_shutdown(drm_device*)
    function void drm_atomic_helper_update_legacy_modeset_state(drm_device*, drm_atomic_state*)
    function int drm_atomic_helper_wait_for_fences(drm_device*, drm_atomic_state*, bool)
    function void drm_atomic_helper_wait_for_vblanks(drm_device*, drm_atomic_state*)
    function drm_atomic_state* drm_atomic_state_alloc(drm_device*)
    function int drm_atomic_state_init(drm_device*, drm_atomic_state*)
    function int drm_connector_init(drm_device*, drm_connector*, const drm_connector_funcs*, int)
    function void drm_connector_list_iter_begin(drm_device*, drm_connector_list_iter*)
    function void drm_connector_list_iter_end(drm_connector_list_iter*)
    function drm_connector* drm_connector_list_iter_next(drm_connector_list_iter*)
    function int drm_crtc_init_with_planes(drm_device*, drm_crtc*, drm_plane*, drm_plane*, const drm_crtc_funcs*, const char*, ...)
    function drm_display_mode* drm_cvt_mode(drm_device*, int, int, int, bool, bool, bool)
    function drm_device* drm_dev_alloc(drm_driver*, device*)
    function void drm_dev_put(drm_device*)
    function int drm_dev_register(drm_device*, unsigned long int)
    function int drm_dev_set_unique(drm_device*, const char*)
    function void drm_dev_unregister(drm_device*)
    function int drm_dp_atomic_find_vcpi_slots(drm_atomic_state*, drm_dp_mst_topology_mgr*, drm_dp_mst_port*, int)
    function int drm_dp_atomic_release_vcpi_slots(drm_atomic_state*, drm_dp_mst_topology_mgr*, int)
    function int drm_dp_check_act_status(drm_dp_mst_topology_mgr*)
    function int drm_dp_find_vcpi_slots(drm_dp_mst_topology_mgr*, int)
    function bool drm_dp_mst_allocate_vcpi(drm_dp_mst_topology_mgr*, drm_dp_mst_port*, int, int)
    function void drm_dp_mst_deallocate_vcpi(drm_dp_mst_topology_mgr*, drm_dp_mst_port*)
    function drm_connector_status drm_dp_mst_detect_port(drm_connector*, drm_dp_mst_topology_mgr*, drm_dp_mst_port*)
    function edid* drm_dp_mst_get_edid(drm_connector*, drm_dp_mst_topology_mgr*, drm_dp_mst_port*)
    function int drm_dp_mst_hpd_irq(drm_dp_mst_topology_mgr*, u8*, bool*)
    function void drm_dp_mst_reset_vcpi_slots(drm_dp_mst_topology_mgr*, drm_dp_mst_port*)
    function void drm_dp_mst_topology_mgr_destroy(drm_dp_mst_topology_mgr*)
    function int drm_dp_mst_topology_mgr_init(drm_dp_mst_topology_mgr*, drm_device*, drm_dp_aux*, int, int, int)
    function int drm_dp_mst_topology_mgr_set_mst(drm_dp_mst_topology_mgr*, bool)
    function int drm_dp_send_power_updown_phy(drm_dp_mst_topology_mgr*, drm_dp_mst_port*, bool)
    function int drm_dp_update_payload_part1(drm_dp_mst_topology_mgr*)
    function int drm_dp_update_payload_part2(drm_dp_mst_topology_mgr*)
    function int drm_encoder_init(drm_device*, drm_encoder*, const drm_encoder_funcs*, int, const char*, ...)
    function int drm_event_reserve_init_locked(drm_device*, drm_file*, drm_pending_event*, drm_event*)
    function int drm_framebuffer_init(drm_device*, drm_framebuffer*, const drm_framebuffer_funcs*)
    function drm_framebuffer* drm_framebuffer_lookup(drm_device*, drm_file*, unsigned int)
    function int drm_gem_create_mmap_offset(drm_gem_object*)
    function drm_gem_object* drm_gem_fb_get_obj(drm_framebuffer*, unsigned int)
    function void drm_gem_free_mmap_offset(drm_gem_object*)
    function page** drm_gem_get_pages(drm_gem_object*)
    function int drm_gem_handle_create(drm_file*, drm_gem_object*, unsigned int*)
    function int drm_gem_mmap_obj(drm_gem_object*, unsigned long int, vm_area_struct*)
    function int drm_gem_object_init(drm_device*, drm_gem_object*, size_t)
    function drm_gem_object* drm_gem_object_lookup(drm_file*, unsigned int)
    function void drm_gem_object_put(drm_gem_object*)
    function void drm_gem_object_put_unlocked(drm_gem_object*)
    function void drm_gem_object_release(drm_gem_object*)
    function dma_buf* drm_gem_prime_export(drm_device*, drm_gem_object*, int)
    function int drm_gem_prime_fd_to_handle(drm_device*, drm_file*, int, uint32_t*)
    function int drm_gem_prime_handle_to_fd(drm_device*, drm_file*, uint32_t, uint32_t, int*)
    function drm_gem_object* drm_gem_prime_import(drm_device*, dma_buf*)
    function int drm_gem_prime_mmap(drm_gem_object*, vm_area_struct*)
    function void drm_gem_private_object_init(drm_device*, drm_gem_object*, unsigned long int)
    function void drm_gem_put_pages(drm_gem_object*, page**, bool, bool)
    function bool drm_helper_hpd_irq_event(drm_device*)
    function void drm_helper_mode_fill_fb_struct(drm_device*, drm_framebuffer*, const drm_mode_fb_cmd2*)
    function int drm_irq_install(drm_device*, int)
    function int drm_irq_uninstall(drm_device*)
    function void drm_kms_helper_hotplug_event(drm_device*)
    function void drm_kms_helper_poll_disable(drm_device*)
    function void drm_kms_helper_poll_enable(drm_device*)
    function void drm_kms_helper_poll_fini(drm_device*)
    function void drm_kms_helper_poll_init(drm_device*)
    function void drm_mode_config_cleanup(drm_device*)
    function void drm_mode_config_init(drm_device*)
    function void drm_mode_config_reset(drm_device*)
    function int drm_mode_convert_umode(drm_device*, drm_display_mode*, const drm_mode_modeinfo*)
    function drm_display_mode* drm_mode_create(drm_device*)
    function drm_display_mode* drm_mode_duplicate(drm_device*, const drm_display_mode*)
    function drm_mode_object* drm_mode_object_find(drm_device*, drm_file*, unsigned int, unsigned int)
    function void drm_modeset_lock_all(drm_device*)
    function int drm_modeset_lock_all_ctx(drm_device*, drm_modeset_acquire_ctx*)
    function void drm_modeset_unlock_all(drm_device*)
    function void drm_object_attach_property(drm_mode_object*, drm_property*, long long unsigned int)
    function int drm_object_property_set_value(drm_mode_object*, drm_property*, long long unsigned int)
    function void drm_prime_gem_destroy(drm_gem_object*, sg_table*)
    function drm_property* drm_property_create(drm_device*, unsigned int, const char*, int)
    function drm_property* drm_property_create_bitmask(drm_device*, unsigned int, const char*, const drm_prop_enum_list*, int, long long unsigned int)
    function drm_property_blob* drm_property_create_blob(drm_device*, unsigned long int, void*)
    function drm_property* drm_property_create_enum(drm_device*, unsigned int, const char*, const drm_prop_enum_list*, int)
    function drm_property* drm_property_create_range(drm_device*, unsigned int, const char*, long long unsigned int, long long unsigned int)
    function drm_property_blob* drm_property_lookup_blob(drm_device*, unsigned int)
    function void drm_put_dev(drm_device*)
    function void drm_send_event_locked(drm_device*, drm_pending_event*)
    function int drm_universal_plane_init(drm_device*, drm_plane*, unsigned int, const drm_plane_funcs*, const unsigned int*, unsigned int, const long long unsigned int*, drm_plane_type, const char*, ...)
    function int drm_vblank_init(drm_device*, unsigned int)
    function void drm_wait_one_vblank(drm_device*, unsigned int)

'struct pwm_device at pwm.h:76:1' changed:
  type size changed from 512 to 640 (in bits)
  there are data member changes:
    type 'struct pwm_state' of 'pwm_device::state' changed:
      type size changed from 128 to 256 (in bits)
      2 data member insertions:
        'pwm_output_type pwm_state::output_type', at offset 96 (in bits) at pwm.h:85:1
        'pwm_output_pattern* pwm_state::output_pattern', at offset 128 (in bits) at pwm.h:86:1
      there are data member changes:
        'bool pwm_state::enabled' offset changed from 96 to 192 (in bits) (by +96 bits)
      4 impacted interfaces:
        function pwm_device* devm_of_pwm_get(device*, device_node*, const char*)
        function void devm_pwm_put(device*, pwm_device*)
        function int pwmchip_add(pwm_chip*)
        function int pwmchip_remove(pwm_chip*)
    and size changed from 128 to 256 (in bits) (by +128 bits)
  4 impacted interfaces:
    function pwm_device* devm_of_pwm_get(device*, device_node*, const char*)
    function void devm_pwm_put(device*, pwm_device*)
    function int pwmchip_add(pwm_chip*)
    function int pwmchip_remove(pwm_chip*)

'struct pwm_ops at pwm.h:260:1' changed:
  type size changed from 640 to 832 (in bits)
  3 data member insertions:
    'void ()* pwm_ops::get_output_type_supported', at offset 448 (in bits) at pwm.h:319:1
    'void ()* pwm_ops::set_output_type', at offset 512 (in bits) at pwm.h:321:1
    'void ()* pwm_ops::set_output_pattern', at offset 576 (in bits) at pwm.h:323:1
  there are data member changes:
    'void ()* pwm_ops::apply' offset changed from 448 to 640 (in bits) (by +192 bits)
    'void ()* pwm_ops::get_state' offset changed from 512 to 704 (in bits) (by +192 bits)
    'module* pwm_ops::owner' offset changed from 576 to 768 (in bits) (by +192 bits)
  4 impacted interfaces:
    function pwm_device* devm_of_pwm_get(device*, device_node*, const char*)
    function void devm_pwm_put(device*, pwm_device*)
    function int pwmchip_add(pwm_chip*)
    function int pwmchip_remove(pwm_chip*)

'struct pwm_state at pwm.h:58:1' changed:
  details were reported earlier

'struct regulator_dev at driver.h:438:1' changed:
  type size changed from 9280 to 9344 (in bits)
  1 data member insertion:
    'proxy_consumer* regulator_dev::proxy_consumer', at offset 9280 (in bits) at driver.h:479:1
  29 impacted interfaces:
    function int devm_regulator_bulk_get(device*, int, regulator_bulk_data*)
    function regulator* devm_regulator_get(device*, const char*)
    function regulator* devm_regulator_get_optional(device*, const char*)
    function void devm_regulator_put(regulator*)
    function regulator_dev* devm_regulator_register(device*, const regulator_desc*, const regulator_config*)
    function regulator_init_data* of_get_regulator_init_data(device*, device_node*, const regulator_desc*)
    function void* rdev_get_drvdata(regulator_dev*)
    function int rdev_get_id(regulator_dev*)
    function int regulator_bulk_disable(int, regulator_bulk_data*)
    function int regulator_bulk_enable(int, regulator_bulk_data*)
    function int regulator_count_voltages(regulator*)
    function int regulator_disable_deferred(regulator*, int)
    function int regulator_disable_regmap(regulator_dev*)
    function int regulator_enable_regmap(regulator_dev*)
    function regulator* regulator_get(device*, const char*)
    function void* regulator_get_drvdata(regulator*)
    function unsigned int regulator_get_mode(regulator*)
    function int regulator_get_voltage_sel_regmap(regulator_dev*)
    function int regulator_is_enabled(regulator*)
    function int regulator_is_enabled_regmap(regulator_dev*)
    function int regulator_list_voltage_linear(regulator_dev*, unsigned int)
    function int regulator_map_voltage_linear(regulator_dev*, int, int)
    function int regulator_notifier_call_chain(regulator_dev*, unsigned long int, void*)
    function int regulator_register_notifier(regulator*, notifier_block*)
    function int regulator_set_current_limit(regulator*, int, int)
    function int regulator_set_load(regulator*, int)
    function int regulator_set_mode(regulator*, unsigned int)
    function int regulator_set_voltage_sel_regmap(regulator_dev*, unsigned int)
    function int regulator_unregister_notifier(regulator*, notifier_block*)

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I926c10dae8e7acce013c94d4713084de638d64bf
2020-04-03 10:40:08 +02:00
2020-04-03 08:17:23 +02:00
2020-03-25 09:50:38 +01:00
2020-04-03 08:17:23 +02:00
2020-04-03 08:17:23 +02:00
2020-04-03 08:17:23 +02:00
2020-03-03 07:33:01 +01:00
2020-04-03 08:17:23 +02:00
2020-03-25 09:50:38 +01:00
2020-04-03 08:17:23 +02:00
2020-04-03 08:17:23 +02:00
2020-02-24 09:13:25 +01:00
2020-03-25 09:50:38 +01:00
2020-04-03 08:17:23 +02:00
2020-03-03 07:33:01 +01:00
2020-04-03 08:17:23 +02:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.
Description
No description provided
Readme 7.9 GiB
Languages
C 97.7%
Assembly 1.6%
Makefile 0.3%
Perl 0.1%