cxgb_t3fw.c revision 176613
1/* 2 * from: FreeBSD: src/sys/tools/fw_stub.awk,v 1.6 2007/03/02 11:42:53 flz 3 */ 4#include <sys/cdefs.h> 5__FBSDID("$FreeBSD: head/sys/dev/cxgb/cxgb_t3fw.c 176613 2008-02-26 23:05:05Z kmacy $"); 6#include <sys/param.h> 7#include <sys/errno.h> 8#include <sys/kernel.h> 9#include <sys/module.h> 10#include <sys/linker.h> 11#include <sys/firmware.h> 12#include <sys/systm.h> 13#include <dev/cxgb/cxgb_t3fw.h> 14#include <dev/cxgb/t3b_protocol_sram.h> 15#include <dev/cxgb/t3b_tp_eeprom.h> 16 17static int 18cxgb_t3fw_modevent(module_t mod, int type, void *unused) 19{ 20 const struct firmware *fp, *parent; 21 int error; 22 switch (type) { 23 case MOD_LOAD: 24 25 fp = firmware_register("cxgb_t3fw", t3fw, 26 (size_t)t3fw_length, 27 0, NULL); 28 if (fp == NULL) 29 goto fail_0; 30 parent = fp; 31 return (0); 32 fail_0: 33 return (ENXIO); 34 case MOD_UNLOAD: 35 error = firmware_unregister("cxgb_t3fw"); 36 return (error); 37 } 38 return (EINVAL); 39} 40 41static moduledata_t cxgb_t3fw_mod = { 42 "cxgb_t3fw", 43 cxgb_t3fw_modevent, 44 0 45}; 46DECLARE_MODULE(cxgb_t3fw, cxgb_t3fw_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 47MODULE_VERSION(cxgb_t3fw, 1); 48MODULE_DEPEND(cxgb_t3fw, firmware, 1, 1, 1); 49 50static int 51cxgb_t3b_protocol_sram_modevent(module_t mod, int type, void *unused) 52{ 53 const struct firmware *fp, *parent; 54 int error; 55 switch (type) { 56 case MOD_LOAD: 57 58 fp = firmware_register("cxgb_t3b_protocol_sram", t3b_protocol_sram, 59 (size_t)t3b_protocol_sram_length, 60 0, NULL); 61 if (fp == NULL) 62 goto fail_0; 63 parent = fp; 64 return (0); 65 fail_0: 66 return (ENXIO); 67 case MOD_UNLOAD: 68 error = firmware_unregister("cxgb_t3b_protocol_sram"); 69 return (error); 70 } 71 return (EINVAL); 72} 73 74static moduledata_t cxgb_t3b_protocol_sram_mod = { 75 "cxgb_t3b_protocol_sram", 76 cxgb_t3b_protocol_sram_modevent, 77 0 78}; 79DECLARE_MODULE(cxgb_t3b_protocol_sram, cxgb_t3b_protocol_sram_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 80MODULE_VERSION(cxgb_t3b_protocol_sram, 1); 81MODULE_DEPEND(cxgb_t3b_protocol_sram, firmware, 1, 1, 1); 82 83 84static int 85cxgb_t3b_tp_eeprom_modevent(module_t mod, int type, void *unused) 86{ 87 const struct firmware *fp, *parent; 88 int error; 89 switch (type) { 90 case MOD_LOAD: 91 92 fp = firmware_register("cxgb_t3b_tp_eeprom", t3b_tp_eeprom, 93 (size_t)t3b_tp_eeprom_length, 94 0, NULL); 95 if (fp == NULL) 96 goto fail_0; 97 parent = fp; 98 return (0); 99 fail_0: 100 return (ENXIO); 101 case MOD_UNLOAD: 102 error = firmware_unregister("cxgb_t3b_tp_eeprom"); 103 return (error); 104 } 105 return (EINVAL); 106} 107 108static moduledata_t cxgb_t3b_tp_eeprom_mod = { 109 "cxgb_t3b_tp_eeprom", 110 cxgb_t3b_tp_eeprom_modevent, 111 0 112}; 113DECLARE_MODULE(cxgb_t3b_tp_eeprom, cxgb_t3b_tp_eeprom_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST); 114MODULE_VERSION(cxgb_t3b_tp_eeprom, 1); 115MODULE_DEPEND(cxgb_t3b_tp_eeprom, firmware, 1, 1, 1); 116