static devclass_t ath_devclass;
DRIVER_MODULE(ath, pci, ath_pci_driver, ath_devclass, 0, 0);
MODULE_VERSION(ath, 1);
-MODULE_DEPEND(ath, wlan, 1, 1, 1); /* 802.11 media layer */
+
+MODULE_DEPEND(ath, ath_hal, 1, 1, 1); /* Atheros HAL */
+MODULE_DEPEND(ath, ath_rate, 1, 1, 1); /* rate control algorithm */
+MODULE_DEPEND(ath, wlan, 1, 1, 1); /* 802.11 media layer */
panic("ath_hal_assert");
}
#endif /* AH_ASSERT */
+
+/*
+ * Module glue.
+ */
+static int
+ath_hal_modevent(module_t mod, int type, void *unused)
+{
+ switch (type) {
+ case MOD_LOAD:
+ return 0;
+ case MOD_UNLOAD:
+ return 0;
+ }
+
+ return EINVAL;
+}
+
+static moduledata_t ath_hal_mod = {
+ "ath_hal",
+ ath_hal_modevent,
+ 0
+};
+
+DECLARE_MODULE(ath_hal, ath_hal_mod, SI_SUB_DRIVERS, SI_ORDER_ANY);
+MODULE_VERSION(ath_hal, 1);
kfree(ssc, M_DEVBUF);
}
+
+/*
+ * Module glue.
+ */
+static int
+sample_modevent(module_t mod, int type, void *unused)
+{
+ switch (type) {
+ case MOD_LOAD:
+ if (bootverbose)
+ kprintf("ath_rate: <SampleRate bit-rate selection algorithm>\n");
+ return 0;
+ case MOD_UNLOAD:
+ return 0;
+ }
+ return EINVAL;
+}
+
+static moduledata_t sample_mod = {
+ "ath_rate",
+ sample_modevent,
+ 0
+};
+DECLARE_MODULE(ath_rate, sample_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
+MODULE_VERSION(ath_rate, 1);
+MODULE_DEPEND(ath_rate, ath_hal, 1, 1, 1); /* Atheros HAL */
+MODULE_DEPEND(ath_rate, wlan, 1, 1, 1);