ipr_show_fw_type(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ipr_show_fw_type(9) β€” the little sysfs show function that tells you your adapter's firmware type

okay so real talk bestie, this page lives in the Kernel API Manual, section 9 (that's the (9) β€” kernel API, not a command you run in your terminal, iykyk). It's a tiny little sysfs show callback and honestly it's giving "small but mighty" 🌸


✨ NAME ✨

ipr_show_fw_type β€” literally just: show the adapter's firmware type. That's the whole job. Main character energy in one line πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

ssize_t ipr_show_fw_type (struct device *dev , struct device_attribute
*attr , char *buf );

no cap, that's the entire signature β€” copy it exactly, spaces and all, it's iconic like that πŸŽ€


🌸 ARGUMENTS 🌸

  • dev β€” a class device struct. Bestie. The device. The one we're snooping on 🫢
  • attr β€” the device attribute... which is unused. She's literally just here for the vibes πŸ™ˆ (this is the normal sysfs show-callback shape, so the arg has to be there even though nobody reads it)
  • buf β€” the buffer. Where the words go. ⭐

πŸ’– DESCRIPTION πŸ’–

Return value: number of bytes printed to buffer

that's it. that's the description. she returns how many bytes she printed into buf, periodt. short queen, zero filler πŸ”₯


🌈 SEE ALSO 🌈

Kernel file ./drivers/scsi/ipr.c β€” this is the file she lives in, and wow is she surrounded by a whole friend group. Here's the entire squad, in order, no one left out, fr fr:

ipr_trc_hook(9), ipr_lock_and_done(9), ipr_reinit_ipr_cmnd(9), ipr_init_ipr_cmnd(9), __ipr_get_free_ipr_cmnd(9), ipr_get_free_ipr_cmnd(9), ipr_mask_and_clear_interrupts(9), ipr_save_pcix_cmd_reg(9), ipr_set_pcix_cmd_reg(9), __ipr_scsi_eh_done(9), ipr_scsi_eh_done(9), ipr_fail_all_ops(9), ipr_send_command(9), ipr_do_req(9), ipr_internal_cmd_done(9), ipr_init_ioadl(9), ipr_send_blocking_cmd(9), ipr_send_hcam(9), ipr_init_res_entry(9), ipr_is_same_device(9), __ipr_format_res_path(9), ipr_format_res_path(9), ipr_update_res_entry(9), ipr_clear_res_target(9), ipr_handle_config_change(9), ipr_process_ccn(9), strip_whitespace(9)

ipr_log_vpd_compact(9), ipr_log_vpd(9), ipr_log_ext_vpd_compact(9), ipr_log_ext_vpd(9), ipr_log_enhanced_cache_error(9), ipr_log_cache_error(9), ipr_log_enhanced_config_error(9), ipr_log_sis64_config_error(9), ipr_log_config_error(9), ipr_log_enhanced_array_error(9), ipr_log_array_error(9), ipr_log_hex_data(9), ipr_log_enhanced_dual_ioa_error(9), ipr_log_dual_ioa_error(9), ipr_log_fabric_path(9), ipr_log64_fabric_path(9), ipr_log_path_elem(9), ipr_log64_path_elem(9), ipr_log_fabric_error(9), ipr_log_sis64_array_error(9), ipr_log_sis64_fabric_error(9), ipr_log_sis64_service_required_error(9), ipr_log_generic_error(9), ipr_log_sis64_device_error(9), ipr_get_error(9), ipr_handle_log_data(9), ipr_process_error(9), ipr_timeout(9), ipr_oper_timeout(9), ipr_find_ses_entry(9), ipr_get_max_scsi_speed(9), ipr_wait_iodbg_ack(9)

ipr_get_sis64_dump_data_section(9), ipr_get_ldump_data_section(9), ipr_sdt_copy(9), ipr_init_dump_entry_hdr(9), ipr_dump_ioa_type_data(9), ipr_dump_version_data(9), ipr_dump_trace_data(9), ipr_dump_location_data(9), ipr_get_ioa_dump(9), ipr_release_dump(9), ipr_worker_thread(9), ipr_read_trace(9), ipr_show_fw_version(9), ipr_show_log_level(9), ipr_store_log_level(9), ipr_store_diagnostics(9), ipr_show_adapter_state(9), ipr_store_adapter_state(9), ipr_store_reset_adapter(9), ipr_store_iopoll_weight(9), ipr_alloc_ucode_buffer(9), ipr_free_ucode_buffer(9), ipr_copy_ucode_buffer(9), ipr_build_ucode_ioadl64(9), ipr_build_ucode_ioadl(9), ipr_update_ioa_ucode(9), ipr_store_update_fw(9), ipr_read_dump(9), ipr_alloc_dump(9), ipr_free_dump(9), ipr_write_dump(9), ipr_change_queue_depth(9), ipr_show_adapter_handle(9), ipr_show_resource_path(9), ipr_show_device_id(9), ipr_show_resource_type(9), ipr_show_raw_mode(9), ipr_store_raw_mode(9), ipr_biosparam(9)

ipr_find_starget(9), ipr_target_destroy(9), ipr_find_sdev(9), ipr_sdev_destroy(9), ipr_sdev_configure(9), ipr_sdev_init(9), ipr_match_lun(9), ipr_cmnd_is_free(9), ipr_wait_for_ops(9), ipr_device_reset(9), __ipr_eh_dev_reset(9), ipr_bus_reset_done(9), ipr_abort_timeout(9), ipr_cancel_op(9), ipr_scan_finished(9), ipr_eh_abort(9), ipr_handle_other_interrupt(9), ipr_isr_eh(9), ipr_isr(9), ipr_isr_mhrrq(9), ipr_build_ioadl64(9), ipr_build_ioadl(9), __ipr_erp_done(9), ipr_erp_done(9), ipr_reinit_ipr_cmnd_for_erp(9), __ipr_erp_request_sense(9), ipr_erp_request_sense(9), ipr_erp_cancel_all(9), ipr_dump_ioasa(9), ipr_gen_sense(9), ipr_get_autosense(9), ipr_erp_start(9), ipr_scsi_done(9), ipr_queuecommand(9), ipr_ioa_info(9), ipr_ioa_bringdown_done(9), ipr_ioa_reset_done(9), ipr_set_sup_dev_dflt(9), ipr_set_supported_devs(9)

ipr_get_mode_page(9), ipr_check_term_power(9), ipr_scsi_bus_speed_limit(9), ipr_modify_ioafp_mode_page_28(9), ipr_build_mode_select(9), ipr_ioafp_mode_select_page28(9), ipr_build_mode_sense(9), ipr_reset_cmd_failed(9), ipr_reset_mode_sense_failed(9), ipr_ioafp_mode_sense_page28(9), ipr_ioafp_mode_select_page24(9), ipr_reset_mode_sense_page24_failed(9), ipr_ioafp_mode_sense_page24(9), ipr_init_res_table(9), ipr_ioafp_query_ioa_cfg(9), ipr_ioafp_set_caching_parameters(9), ipr_ioafp_inquiry(9), ipr_inquiry_page_supported(9), ipr_ioafp_pageC4_inquiry(9), ipr_ioafp_cap_inquiry(9), ipr_ioafp_page3_inquiry(9), ipr_ioafp_page0_inquiry(9), ipr_ioafp_std_inquiry(9), ipr_ioafp_identify_hrrq(9), ipr_reset_timer_done(9), ipr_reset_start_timer(9), ipr_init_ioa_mem(9), ipr_reset_next_stage(9), ipr_reset_enable_ioa(9), ipr_reset_wait_for_dump(9)

ipr_unit_check_no_data(9), ipr_get_unit_check_buffer(9), ipr_reset_get_unit_check_job(9), ipr_set_affinity_nobalance(9), ipr_reset_restore_cfg_space(9), ipr_reset_bist_done(9), ipr_reset_start_bist(9), ipr_reset_slot_reset_done(9), ipr_reset_reset_work(9), ipr_reset_slot_reset(9), ipr_reset_block_config_access_wait(9), ipr_reset_block_config_access(9), ipr_reset_allowed(9), ipr_reset_wait_to_start_bist(9), ipr_reset_alert(9), ipr_reset_quiesce_done(9), ipr_reset_cancel_hcam_done(9), ipr_reset_cancel_hcam(9), ipr_reset_ucode_download_done(9), ipr_reset_ucode_download(9), ipr_reset_shutdown_ioa(9), ipr_reset_ioa_job(9), _ipr_initiate_ioa_reset(9), ipr_initiate_ioa_reset(9), ipr_reset_freeze(9)

ipr_pci_mmio_enabled(9), ipr_pci_frozen(9), ipr_pci_slot_reset(9), ipr_pci_perm_failure(9), ipr_pci_error_detected(9), ipr_probe_ioa_part2(9), ipr_free_cmd_blks(9), ipr_free_mem(9), ipr_free_irqs(9), ipr_free_all_resources(9), ipr_alloc_cmd_blks(9), ipr_alloc_mem(9), ipr_initialize_bus_attr(9), ipr_init_regs(9), ipr_init_ioa_cfg(9), ipr_get_chip_info(9), ipr_wait_for_pci_err_recovery(9), ipr_test_intr(9), ipr_test_msi(9), ipr_initiate_ioa_bringdown(9), __ipr_remove(9), ipr_remove(9), ipr_probe(9), ipr_shutdown(9), ipr_halt_done(9), ipr_halt(9), ipr_init(9), ipr_exit(9)

like... that's a lot of siblings and every single one of them gets a mention, because we do not erase people in this house πŸ«ΆπŸ’œ


okay tiny vibe check πŸ’€ β€” the args here are literally just a device, an unused attribute, and a buffer, and the "description" is one single line about a return value. Do not go assuming extra behaviour for this function, bestie, because the page doesn't promise any. What's written is what's canon. ✨

and that's the whole page, babe πŸŽ€ this cutie dropped from ./drivers/scsi in October 2026, manual ipr_show_fw_type(9) out of the Kernel API Manual β€” mwah, go read ipr.c if you want the real lore πŸ’–πŸ¦‹πŸ‘‘

πŸ“¦ where this page comes from