1/* 2 * HMC Drive DVD Module 3 * 4 * Copyright IBM Corp. 2013 5 * Author(s): Ralf Hoppe (rhoppe@de.ibm.com) 6 */ 7 8#define KMSG_COMPONENT "hmcdrv" 9#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt 10 11#include <linux/kernel.h> 12#include <linux/module.h> 13#include <linux/moduleparam.h> 14#include <linux/stat.h> 15 16#include "hmcdrv_ftp.h" 17#include "hmcdrv_dev.h" 18#include "hmcdrv_cache.h" 19 20MODULE_LICENSE("GPL"); 21MODULE_AUTHOR("Copyright 2013 IBM Corporation"); 22MODULE_DESCRIPTION("HMC drive DVD access"); 23 24/* 25 * module parameter 'cachesize' 26 */ 27static size_t hmcdrv_mod_cachesize = HMCDRV_CACHE_SIZE_DFLT; 28module_param_named(cachesize, hmcdrv_mod_cachesize, ulong, S_IRUGO); 29 30/** 31 * hmcdrv_mod_init() - module init function 32 */ 33static int __init hmcdrv_mod_init(void) 34{ 35 int rc = hmcdrv_ftp_probe(); /* perform w/o cache */ 36 37 if (rc) 38 return rc; 39 40 rc = hmcdrv_cache_startup(hmcdrv_mod_cachesize); 41 42 if (rc) 43 return rc; 44 45 rc = hmcdrv_dev_init(); 46 47 if (rc) 48 hmcdrv_cache_shutdown(); 49 50 return rc; 51} 52 53/** 54 * hmcdrv_mod_exit() - module exit function 55 */ 56static void __exit hmcdrv_mod_exit(void) 57{ 58 hmcdrv_dev_exit(); 59 hmcdrv_cache_shutdown(); 60} 61 62module_init(hmcdrv_mod_init); 63module_exit(hmcdrv_mod_exit); 64