|
@@ -220,14 +220,23 @@ static inline void fmc_set_drvdata(struct fmc_device *fmc, void *data)
|
|
dev_set_drvdata(&fmc->dev, data);
|
|
dev_set_drvdata(&fmc->dev, data);
|
|
}
|
|
}
|
|
|
|
|
|
-/* The 4 access points */
|
|
|
|
|
|
+struct fmc_gateware {
|
|
|
|
+ void *bitstream;
|
|
|
|
+ unsigned long len;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* The 5 access points */
|
|
extern int fmc_driver_register(struct fmc_driver *drv);
|
|
extern int fmc_driver_register(struct fmc_driver *drv);
|
|
extern void fmc_driver_unregister(struct fmc_driver *drv);
|
|
extern void fmc_driver_unregister(struct fmc_driver *drv);
|
|
extern int fmc_device_register(struct fmc_device *tdev);
|
|
extern int fmc_device_register(struct fmc_device *tdev);
|
|
|
|
+extern int fmc_device_register_gw(struct fmc_device *tdev,
|
|
|
|
+ struct fmc_gateware *gw);
|
|
extern void fmc_device_unregister(struct fmc_device *tdev);
|
|
extern void fmc_device_unregister(struct fmc_device *tdev);
|
|
|
|
|
|
-/* Two more for device sets, all driven by the same FPGA */
|
|
|
|
|
|
+/* Three more for device sets, all driven by the same FPGA */
|
|
extern int fmc_device_register_n(struct fmc_device **devs, int n);
|
|
extern int fmc_device_register_n(struct fmc_device **devs, int n);
|
|
|
|
+extern int fmc_device_register_n_gw(struct fmc_device **devs, int n,
|
|
|
|
+ struct fmc_gateware *gw);
|
|
extern void fmc_device_unregister_n(struct fmc_device **devs, int n);
|
|
extern void fmc_device_unregister_n(struct fmc_device **devs, int n);
|
|
|
|
|
|
/* Internal cross-calls between files; not exported to other modules */
|
|
/* Internal cross-calls between files; not exported to other modules */
|