Added an unknown VxD error code.
[wine] / tools / winapi_check / winapi_function.pm
1 package winapi_function;
2
3 use strict;
4
5 sub new {
6     my $proto = shift;
7     my $class = ref($proto) || $proto;
8     my $self  = {};
9     bless ($self, $class);
10
11     return $self;
12 }
13
14 sub file {
15     my $self = shift;
16     my $file = \${$self->{FILE}};
17
18     local $_ = shift;
19
20     if(defined($_)) { $$file = $_; }
21     
22     return $$file;
23 }
24
25 sub documentation {
26     my $self = shift;
27     my $documentation = \${$self->{DOCUMENTATION}};
28
29     local $_ = shift;
30
31     if(defined($_)) { $$documentation = $_; }
32     
33     return $$documentation;
34 }
35
36 sub linkage {
37     my $self = shift;
38     my $linkage = \${$self->{LINKAGE}};
39
40     local $_ = shift;
41
42     if(defined($_)) { $$linkage = $_; }
43     
44     return $$linkage;
45 }
46
47 sub return_type {
48     my $self = shift;
49     my $return_type = \${$self->{RETURN_TYPE}};
50
51     local $_ = shift;
52
53     if(defined($_)) { $$return_type = $_; }
54     
55     return $$return_type;
56 }
57
58 sub calling_convention {
59     my $self = shift;
60     my $calling_convention = \${$self->{CALLING_CONVENTION}};
61
62     local $_ = shift;
63
64     if(defined($_)) { $$calling_convention = $_; }
65     
66     return $$calling_convention;
67 }
68
69 sub external_name16 {
70     my $self = shift;
71     my $external_name16 = \${$self->{EXTERNAL_NAME16}};
72
73     local $_ = shift;
74
75     if(defined($_)) { $$external_name16 = $_; }
76     
77     return $$external_name16;
78 }
79
80 sub external_name32 {
81     my $self = shift;
82     my $external_name32 = \${$self->{EXTERNAL_NAME32}};
83
84     local $_ = shift;
85
86     if(defined($_)) { $$external_name32 = $_; }
87     
88     return $$external_name32;
89 }
90
91 sub internal_name {
92     my $self = shift;
93     my $internal_name = \${$self->{INTERNAL_NAME}};
94
95     local $_ = shift;
96
97     if(defined($_)) { $$internal_name = $_; }
98     
99     return $$internal_name;
100 }
101
102 sub argument_types {
103     my $self = shift;
104     my $argument_types = \${$self->{ARGUMENT_TYPES}};
105
106     local $_ = shift;
107
108     if(defined($_)) { $$argument_types = $_; }
109     
110     return $$argument_types;
111 }
112
113 sub argument_names {
114     my $self = shift;
115     my $argument_names = \${$self->{ARGUMENT_NAMES}};
116
117     local $_ = shift;
118
119     if(defined($_)) { $$argument_names = $_; }
120     
121     return $$argument_names;
122 }
123
124 sub argument_documentations {
125     my $self = shift;
126     my $argument_documentations = \${$self->{ARGUMENT_DOCUMENTATIONS}};
127
128     local $_ = shift;
129
130     if(defined($_)) { $$argument_documentations = $_; }
131     
132     return $$argument_documentations;
133 }
134
135 sub module16 {
136     my $self = shift;
137     my $module16 = \${$self->{MODULE16}};
138
139     local $_ = shift;
140
141     if(defined($_)) { $$module16 = $_; }
142     return $$module16;
143 }
144
145 sub module32 {
146     my $self = shift;
147     my $module32 = \${$self->{MODULE32}};
148
149     local $_ = shift;
150     
151     if(defined($_)) { $$module32 = $_; }        
152     return $$module32;
153 }
154
155 sub statements {
156     my $self = shift;
157     my $statements = \${$self->{STATEMENTS}};
158
159     local $_ = shift;
160
161     if(defined($_)) { $$statements = $_; }
162     
163     return $$statements;
164 }
165
166 sub module {
167     my $self = shift;
168     my $module16 = \${$self->{MODULE16}};
169     my $module32 = \${$self->{MODULE32}};
170
171     my $module;
172     if(defined($$module16) && defined($$module32)) {
173         $module = "$$module16 & $$module32";
174     } elsif(defined($$module16)) {
175         $module = $$module16;
176     } elsif(defined($$module32)) {
177         $module = $$module32;
178     } else {
179         $module = "";
180     }
181 }
182
183 sub function_called {    
184     my $self = shift;
185     my $called_function_names = \%{$self->{CALLED_FUNCTION_NAMES}};
186
187     my $name = shift;
188
189     $$called_function_names{$name}++;
190 }
191
192 sub function_called_by { 
193    my $self = shift;
194    my $called_by_function_names = \%{$self->{CALLED_BY_FUNCTION_NAMES}};
195
196    my $name = shift;
197
198    $$called_by_function_names{$name}++;
199 }
200
201 sub called_function_names {    
202     my $self = shift;
203     my $called_function_names = \%{$self->{CALLED_FUNCTION_NAMES}};
204
205     return sort(keys(%$called_function_names));
206 }
207
208 sub called_by_function_names {    
209     my $self = shift;
210     my $called_by_function_names = \%{$self->{CALLED_BY_FUNCTION_NAMES}};
211
212     return sort(keys(%$called_by_function_names));
213 }
214
215
216 1;