1175365Sgallatin/* 2175365Sgallatin * from: FreeBSD: src/sys/tools/fw_stub.awk,v 1.6 2007/03/02 11:42:53 flz 3175365Sgallatin */ 4175365Sgallatin#include <sys/cdefs.h> 5175365Sgallatin__FBSDID("$FreeBSD$"); 6175365Sgallatin#include <sys/param.h> 7175365Sgallatin#include <sys/errno.h> 8175365Sgallatin#include <sys/kernel.h> 9175365Sgallatin#include <sys/module.h> 10175365Sgallatin#include <sys/linker.h> 11175365Sgallatin#include <sys/firmware.h> 12175365Sgallatin#include <sys/systm.h> 13175365Sgallatin#include <dev/mxge/rss_ethp_z8e.h> 14175365Sgallatin 15175365Sgallatinstatic int 16175365Sgallatinmxge_rss_ethp_z8e_fw_modevent(module_t mod, int type, void *unused) 17175365Sgallatin{ 18175365Sgallatin const struct firmware *fp, *parent; 19175365Sgallatin int error; 20175365Sgallatin switch (type) { 21175365Sgallatin case MOD_LOAD: 22175365Sgallatin 23175365Sgallatin fp = firmware_register("mxge_rss_ethp_z8e", rss_ethp_z8e, 24175365Sgallatin (size_t)rss_ethp_z8e_length, 25175365Sgallatin rss_ethp_z8e_uncompressed_length, NULL); 26175365Sgallatin if (fp == NULL) 27175365Sgallatin goto fail_0; 28175365Sgallatin parent = fp; 29175365Sgallatin return (0); 30175365Sgallatin fail_0: 31175365Sgallatin return (ENXIO); 32175365Sgallatin case MOD_UNLOAD: 33175365Sgallatin error = firmware_unregister("mxge_rss_ethp_z8e"); 34175365Sgallatin return (error); 35175365Sgallatin } 36175365Sgallatin return (EINVAL); 37175365Sgallatin} 38175365Sgallatin 39175365Sgallatinstatic moduledata_t mxge_rss_ethp_z8e_fw_mod = { 40175365Sgallatin "mxge_rss_ethp_z8e_fw", 41175365Sgallatin mxge_rss_ethp_z8e_fw_modevent, 42175365Sgallatin 0 43175365Sgallatin}; 44175365SgallatinDECLARE_MODULE(mxge_rss_ethp_z8e_fw, mxge_rss_ethp_z8e_fw_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 45175365SgallatinMODULE_VERSION(mxge_rss_ethp_z8e_fw, 1); 46175365SgallatinMODULE_DEPEND(mxge_rss_ethp_z8e_fw, firmware, 1, 1, 1); 47175365Sgallatin 48