mpt_GetScsiPortSettings(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… mpt_GetScsiPortSettings(9) β€” from the Kernel API Manual, bestie 🫢

okay so picture this: you're deep in the fusion driver, you've got an MPT_ADAPTER in your hands, and you need the SCSI Port Page 0 and Page 2 settings. That's the whole gig. This little function is the one who reads them. Iconic behavior, honestly.


✨ NAME ✨

mpt_GetScsiPortSettings β€” literally just reads SCSI Port Page 0 and Page 2. That's it. That's the function. πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

int mpt_GetScsiPortSettings (MPT_ADAPTER *ioc , int portnum );

copy it exactly, no cap, the spacing is part of the vibe πŸ’œ


🌸 ARGUMENTS 🌸

  • ioc β€” pointer to a Adapter Strucutre. yes, "Strucutre". we are keeping the spelling, it's part of the lore now πŸ™ˆ it's your adapter struct, hand it over.
  • portnum β€” the IOC port number. which port bestie. tell her which port. πŸ”₯

🧚 RETURN 🧚

okay this one is a whole saga so buckle up, I'm giving it to you exactly how the page gives it to me:

  • -EFAULT if read of config page header fails or if no nvram
  • If read of SCSI Port Page 0 fails, NVRAM = MPT_HOST_NVRAM_INVALID (0xFFFFFFFF), Adapter settings: async, narrow, Return 1
  • If read of SCSI Port Page 2 fails, Adapter settings valid, NVRAM = MPT_HOST_NVRAM_INVALID (0xFFFFFFFF), Return 1
  • Else Both valid, Return 0
and then the page literally goes CHECK - what type of locking mechanisms should be used???? and honestly? same question. the docs said what they said. πŸ’€ I'm not inventing an answer for you, that's above my pay grade.

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/message/fusion/mptbase.c β€” go read it, it's giving main character energy ⭐

and then the entire friend group, in order, no one left behind:

mpt_get_cb_idx(9), mpt_is_discovery_complete(9), mpt_remove_dead_ioc_func(9), mpt_fault_reset_work(9), mpt_interrupt(9), mptbase_reply(9), mpt_register(9), mpt_deregister(9), mpt_event_register(9), mpt_event_deregister(9), mpt_reset_register(9), mpt_reset_deregister(9), mpt_device_driver_register(9), mpt_device_driver_deregister(9), mpt_get_msg_frame(9), mpt_put_msg_frame(9), mpt_put_msg_frame_hi_pri(9), mpt_free_msg_frame(9), mpt_add_sge(9), mpt_add_sge_64bit(9), mpt_add_sge_64bit_1078(9), mpt_add_chain(9), mpt_add_chain_64bit(9), mpt_send_handshake_request(9), mpt_host_page_access_control(9), mpt_host_page_alloc(9), mpt_verify_adapter(9), mpt_get_product_name(9), mpt_mapresources(9), mpt_attach(9), mpt_detach(9), mpt_suspend(9), mpt_resume(9), mpt_do_ioc_recovery(9), mpt_detect_bound_ports(9), mpt_adapter_disable(9), mpt_adapter_dispose(9), MptDisplayIocCapabilities(9), MakeIocReady(9), mpt_GetIocState(9), GetIocFacts(9), GetPortFacts(9), SendIocInit(9), SendPortEnable(9), mpt_alloc_fw_memory(9), mpt_free_fw_memory(9), mpt_do_upload(9), mpt_downloadboot(9), KickStart(9), mpt_diag_reset(9), SendIocReset(9), initChainBuffers(9), PrimeIocFifos(9), mpt_handshake_req_reply_wait(9), WaitForDoorbellAck(9), WaitForDoorbellInt(9), WaitForDoorbellReply(9), GetLanConfigPages(9), mptbase_sas_persist_operation(9), GetIoUnitPage2(9), mpt_readScsiDevicePageHeaders(9), mpt_inactive_raid_list_free(9), mpt_inactive_raid_volumes(9), mpt_raid_phys_disk_pg0(9), mpt_raid_phys_disk_get_num_paths(9), mpt_raid_phys_disk_pg1(9), mpt_findImVolumes(9), SendEventNotification(9), SendEventAck(9), mpt_config(9), mpt_ioc_reset(9), procmpt_create(9), procmpt_destroy(9), mpt_print_ioc_summary(9), mpt_set_taskmgmt_in_progress_flag(9), mpt_clear_taskmgmt_in_progress_flag(9), mpt_halt_firmware(9), mpt_SoftResetHandler(9), mpt_Soft_Hard_ResetHandler(9), mpt_HardResetHandler(9), ProcessEventNotification(9), mpt_fc_log_info(9), mpt_spi_log_info(9), mpt_sas_log_info(9), mpt_iocstatus_info_config(9), mpt_iocstatus_info(9), fusion_init(9), fusion_exit(9)

like I said. nobody gets left out. 🫢


that's the whole page, bestie β€” love you, go read your port pages ✨

signed off from ./drivers/message/fusion, dated October 2026, living inside the Kernel API Manual. mwah. πŸ’–

πŸ“¦ where this page comes from