1 /* sub32.h -- simple delta filter
2
3 This file is part of the UPX executable compressor.
4
5 Copyright (C) 1996-2020 Markus Franz Xaver Johannes Oberhumer
6 Copyright (C) 1996-2020 Laszlo Molnar
7 All Rights Reserved.
8
9 UPX and the UCL library are free software; you can redistribute them
10 and/or modify them under the terms of the GNU General Public License as
11 published by the Free Software Foundation; either version 2 of
12 the License, or (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; see the file COPYING.
21 If not, write to the Free Software Foundation, Inc.,
22 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23
24 Markus F.X.J. Oberhumer Laszlo Molnar
25 <markus@oberhumer.com> <ezerotven+github@gmail.com>
26 */
27
28
29
30 /*************************************************************************
31 //
32 **************************************************************************/
33
34 #include "sub.hh"
35
36 #define SUB32(f, N) SUB(f, N, unsigned int, get_le32, set_le32)
37 #define ADD32(f, N) ADD(f, N, unsigned int, get_le32, set_le32)
38 #define SCAN32(f, N) SCAN(f, N, unsigned int, get_le32, set_le32)
39
40
41 /*************************************************************************
42 //
43 **************************************************************************/
44
45 // filter
f_sub32_1(Filter * f)46 static int f_sub32_1(Filter *f)
47 {
48 SUB32(f, 1)
49 }
50
f_sub32_2(Filter * f)51 static int f_sub32_2(Filter *f)
52 {
53 SUB32(f, 2)
54 }
55
f_sub32_3(Filter * f)56 static int f_sub32_3(Filter *f)
57 {
58 SUB32(f, 3)
59 }
60
f_sub32_4(Filter * f)61 static int f_sub32_4(Filter *f)
62 {
63 SUB32(f, 4)
64 }
65
66
67 // unfilter
u_sub32_1(Filter * f)68 static int u_sub32_1(Filter *f)
69 {
70 ADD32(f, 1)
71 }
72
u_sub32_2(Filter * f)73 static int u_sub32_2(Filter *f)
74 {
75 ADD32(f, 2)
76 }
77
u_sub32_3(Filter * f)78 static int u_sub32_3(Filter *f)
79 {
80 ADD32(f, 3)
81 }
82
u_sub32_4(Filter * f)83 static int u_sub32_4(Filter *f)
84 {
85 ADD32(f, 4)
86 }
87
88
89 // scan
s_sub32_1(Filter * f)90 static int s_sub32_1(Filter *f)
91 {
92 SCAN32(f, 1)
93 }
94
s_sub32_2(Filter * f)95 static int s_sub32_2(Filter *f)
96 {
97 SCAN32(f, 2)
98 }
99
s_sub32_3(Filter * f)100 static int s_sub32_3(Filter *f)
101 {
102 SCAN32(f, 3)
103 }
104
s_sub32_4(Filter * f)105 static int s_sub32_4(Filter *f)
106 {
107 SCAN32(f, 4)
108 }
109
110
111 #undef SUB
112 #undef ADD
113 #undef SCAN
114 #undef SUB32
115 #undef ADD32
116 #undef SCAN32
117
118 /* vim:set ts=4 sw=4 et: */
119