mxge_eth_z8e.c revision 259065
1273331Sbryanv/* 2273331Sbryanv * from: FreeBSD: src/sys/tools/fw_stub.awk,v 1.6 2007/03/02 11:42:53 flz 3273331Sbryanv */ 4273331Sbryanv#include <sys/cdefs.h> 5273331Sbryanv__FBSDID("$FreeBSD: releng/10.0/sys/dev/mxge/mxge_eth_z8e.c 241394 2012-10-10 08:36:38Z kevlo $"); 6273331Sbryanv#include <sys/param.h> 7273331Sbryanv#include <sys/errno.h> 8273331Sbryanv#include <sys/kernel.h> 9273331Sbryanv#include <sys/module.h> 10273331Sbryanv#include <sys/linker.h> 11273331Sbryanv#include <sys/firmware.h> 12273331Sbryanv#include <sys/systm.h> 13273331Sbryanv#include <dev/mxge/eth_z8e.h> 14273331Sbryanv 15273331Sbryanvstatic int 16273331Sbryanvmxge_eth_z8e_fw_modevent(module_t mod, int type, void *unused) 17273331Sbryanv{ 18273331Sbryanv const struct firmware *fp, *parent; 19273331Sbryanv int error; 20273331Sbryanv switch (type) { 21273331Sbryanv case MOD_LOAD: 22273331Sbryanv 23273331Sbryanv fp = firmware_register("mxge_eth_z8e", eth_z8e, 24273331Sbryanv (size_t)eth_z8e_length, 25273331Sbryanv eth_z8e_uncompressed_length, NULL); 26273331Sbryanv if (fp == NULL) 27273331Sbryanv goto fail_0; 28273331Sbryanv parent = fp; 29273331Sbryanv return (0); 30273331Sbryanv fail_0: 31273331Sbryanv return (ENXIO); 32273331Sbryanv case MOD_UNLOAD: 33273331Sbryanv error = firmware_unregister("mxge_eth_z8e"); 34273331Sbryanv return (error); 35273331Sbryanv } 36273331Sbryanv return (EINVAL); 37273331Sbryanv} 38273331Sbryanv 39273331Sbryanvstatic moduledata_t mxge_eth_z8e_fw_mod = { 40273331Sbryanv "mxge_eth_z8e_fw", 41273331Sbryanv mxge_eth_z8e_fw_modevent, 42273331Sbryanv 0 43273331Sbryanv}; 44273331SbryanvDECLARE_MODULE(mxge_eth_z8e_fw, mxge_eth_z8e_fw_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 45273331SbryanvMODULE_VERSION(mxge_eth_z8e_fw, 1); 46273331SbryanvMODULE_DEPEND(mxge_eth_z8e_fw, firmware, 1, 1, 1); 47273331Sbryanv 48273331Sbryanv