11e413cf9SAndrew Gallatin /* 21e413cf9SAndrew Gallatin * from: FreeBSD: src/sys/tools/fw_stub.awk,v 1.6 2007/03/02 11:42:53 flz 31e413cf9SAndrew Gallatin */ 41e413cf9SAndrew Gallatin #include <sys/cdefs.h> 51e413cf9SAndrew Gallatin __FBSDID("$FreeBSD$"); 61e413cf9SAndrew Gallatin #include <sys/param.h> 71e413cf9SAndrew Gallatin #include <sys/errno.h> 81e413cf9SAndrew Gallatin #include <sys/kernel.h> 91e413cf9SAndrew Gallatin #include <sys/module.h> 101e413cf9SAndrew Gallatin #include <sys/linker.h> 111e413cf9SAndrew Gallatin #include <sys/firmware.h> 121e413cf9SAndrew Gallatin #include <sys/systm.h> 131e413cf9SAndrew Gallatin #include <dev/mxge/rss_ethp_z8e.h> 141e413cf9SAndrew Gallatin 151e413cf9SAndrew Gallatin static int 161e413cf9SAndrew Gallatin mxge_rss_ethp_z8e_fw_modevent(module_t mod, int type, void *unused) 171e413cf9SAndrew Gallatin { 18*273676a4SWarner Losh const struct firmware *fp; 191e413cf9SAndrew Gallatin int error; 201e413cf9SAndrew Gallatin switch (type) { 211e413cf9SAndrew Gallatin case MOD_LOAD: 221e413cf9SAndrew Gallatin 231e413cf9SAndrew Gallatin fp = firmware_register("mxge_rss_ethp_z8e", rss_ethp_z8e, 241e413cf9SAndrew Gallatin (size_t)rss_ethp_z8e_length, 251e413cf9SAndrew Gallatin rss_ethp_z8e_uncompressed_length, NULL); 261e413cf9SAndrew Gallatin if (fp == NULL) 271e413cf9SAndrew Gallatin goto fail_0; 281e413cf9SAndrew Gallatin return (0); 291e413cf9SAndrew Gallatin fail_0: 301e413cf9SAndrew Gallatin return (ENXIO); 311e413cf9SAndrew Gallatin case MOD_UNLOAD: 321e413cf9SAndrew Gallatin error = firmware_unregister("mxge_rss_ethp_z8e"); 331e413cf9SAndrew Gallatin return (error); 341e413cf9SAndrew Gallatin } 351e413cf9SAndrew Gallatin return (EINVAL); 361e413cf9SAndrew Gallatin } 371e413cf9SAndrew Gallatin 381e413cf9SAndrew Gallatin static moduledata_t mxge_rss_ethp_z8e_fw_mod = { 391e413cf9SAndrew Gallatin "mxge_rss_ethp_z8e_fw", 401e413cf9SAndrew Gallatin mxge_rss_ethp_z8e_fw_modevent, 419823d527SKevin Lo 0 421e413cf9SAndrew Gallatin }; 431e413cf9SAndrew Gallatin DECLARE_MODULE(mxge_rss_ethp_z8e_fw, mxge_rss_ethp_z8e_fw_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 441e413cf9SAndrew Gallatin MODULE_VERSION(mxge_rss_ethp_z8e_fw, 1); 451e413cf9SAndrew Gallatin MODULE_DEPEND(mxge_rss_ethp_z8e_fw, firmware, 1, 1, 1); 46