blob: 51cba6ae671844b1af07029d156061831c955a89 [file] [log] [blame]
/* cyanblkdev_queue.h - Antioch Linux Block Driver queue header file
## ===========================
## Copyright (C) 2010 Cypress Semiconductor
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
## as published by the Free Software Foundation; either version 2
## of the License, or (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor
## Boston, MA 02110-1301, USA.
## ===========================
*/
#ifndef _INCLUDED_CYANBLKDEV_QUEUE_H_
#define _INCLUDED_CYANBLKDEV_QUEUE_H_
/*
* may contain various useful MACRO and debug printks
*/
/* moved to staging location, eventual implementation
* considered is here
* #include <linux/westbridge/cyashal.h>
* #include <linux/westbridge/cyastoria.h>
* */
#include "../include/linux/westbridge/cyashal.h"
#include "../include/linux/westbridge/cyastoria.h"
struct request;
struct task_struct;
struct cyasblkdev_queue {
struct completion thread_complete;
wait_queue_head_t thread_wq;
struct semaphore thread_sem;
unsigned int flags;
struct request *req;
int (*prep_fn)(struct cyasblkdev_queue *, struct request *);
int (*issue_fn)(struct cyasblkdev_queue *, struct request *);
void *data;
struct request_queue *queue;
};
extern int cyasblkdev_init_queue(struct cyasblkdev_queue *, spinlock_t *);
extern void cyasblkdev_cleanup_queue(struct cyasblkdev_queue *);
extern void cyasblkdev_queue_suspend(struct cyasblkdev_queue *);
extern void cyasblkdev_queue_resume(struct cyasblkdev_queue *);
extern cy_as_device_handle cyasdevice_getdevhandle(void);
#define MOD_LOGS 1
void verbose_rq_flags(int flags);
#endif /* _INCLUDED_CYANBLKDEV_QUEUE_H_ */
/*[]*/