linux/drivers/s390/char/hmcdrv_mod.c
<<
>>
Prefs
   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