/*
 * Copyright 2008 Sony Corporation  
 */
#ifndef __DECOMPRESS_DRIVER_H
#define __DECOMPRESS_DRIVER_H

#include <linux/list.h>
#include <linux/mm.h>

#define DECOMPRESS_FLAG_LZO	0x00000001
#define DECOMPRESS_FLAG_LZ77	0x00000002

struct decompress_driver {
	struct list_head list;
	u32 flag;
	int (*decompress)(void *dst, u32 dstlen, void *src, u32 srclen, void *data);
	void *data;
};

extern int decompress_driver_register(struct decompress_driver *driver);
extern void decompress_driver_unregister(struct decompress_driver *driver);
extern u32 call_decompress_driver(u32 flags, void *dst, u32 dstlen, void *src, u32 srclen);

#endif /* __DECOMPRESS_DRIVER_H */
