#ifndef _HINT_MAIN_H_
#define _HINT_MAIN_H_

#include "hint_device.h"
#include "hint_manager.h"

#include <scsi/scsi_device.h>
#include <scsi/scsi_cmnd.h>

#define TYPE_SSD            0x13
#define TYPE_HINT           0x14

typedef struct hint_info_s {
  struct task_struct *hint_manager_task;
  struct scsi_device *ssd_device;
  struct scsi_device *hint_device;
  hint_dev_t hint_dev;
  hint_manager_t hint_mng;
  int (* queuecommand)(struct scsi_cmnd *,
                         void (*done)(struct scsi_cmnd *));
} hint_info_t;

/* forward declarations */
static int hint_scsi_add(struct device *cl_dev, struct class_interface *cl_intf);
static void hint_scsi_remove(struct device *cl_dev, struct class_interface *cl_intf);


#endif /* _HINT_MAIN_H_ */
