/* 2009-08-18: File added by Sony Corporation */
/*
 *  File Name : linux/include/asm-arm/arch-mp200/fsg_handler.h
 *
 *  Copyright (c) 2009- SONY Corporation. All rights reserved.
 *
 *
 *  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 Free Softwere Foundation; either version 2
 *  of 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 warrnty 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., 59 Temple Place - Suite 330, Boston,
 *  MA 02111-1307, USA.
 *
 */

#ifndef __LINUX_FSG_HANDLER_H
#define __LINUX_FSG_HANDLER_H

enum {
	FSG_USB_DISCONNECTED,
	FSG_USB_CONNECTED
};

int fsg_register_media_type_handler( int lun,
									 int (*handler)(int, void *, char * ),
									 void *handler_id );

void fsg_unregister_media_type_handler( int lun, void *handler_id );

int fsg_register_parm_info_handler( int lun,
									int page_code,
									int (*handler)(int, int, void *, char * ),
									int parm_page_max_length,
									void *handler_id );

void fsg_unregister_parm_info_handler( int lun, int page_code, void *handler_id );

int fsg_register_vc_handler( int lun,
							 int cmd,
							 int (*handler)( int, int, void *, char *, int, char *, u32 *, u32 * ),
							 int send_data_max_length,
							 void *handler_id );

void fsg_unregister_vc_handler( int lun, int cmd, void *handler_id );

int fsg_register_usb_event_handler( void (*handler)(char, void *),
									void *handler_id );

void fsg_unregister_usb_event_handler( void *handler_id );

#endif	/* __LINUX_FSG_HANDLER_H */
