more changes on original files
[linux-2.4.git] / fs / jffs2 / compr_rubin.h
1 /* Rubin encoder/decoder header       */
2 /* work started at   : aug   3, 1994  */
3 /* last modification : aug  15, 1994  */
4 /* $Id: compr_rubin.h,v 1.5 2001/02/26 13:50:01 dwmw2 Exp $ */
5
6 #include "pushpull.h"
7
8 #define RUBIN_REG_SIZE   16
9 #define UPPER_BIT_RUBIN    (((long) 1)<<(RUBIN_REG_SIZE-1))
10 #define LOWER_BITS_RUBIN   ((((long) 1)<<(RUBIN_REG_SIZE-1))-1)
11
12
13 struct rubin_state {
14         unsigned long p;                
15         unsigned long q;        
16         unsigned long rec_q;
17         long bit_number;
18         struct pushpull pp;
19         int bit_divider;
20         int bits[8];
21 };
22
23
24 void init_rubin (struct rubin_state *rs, int div, int *bits);
25 int encode (struct rubin_state *, long, long, int);
26 void end_rubin (struct rubin_state *);
27 void init_decode (struct rubin_state *, int div, int *bits);
28 int decode (struct rubin_state *, long, long);