Home | History | Annotate | Download | only in irs

Lines Matching refs:irs

54 #include <irs.h>
125 struct gen_p *irs;
132 if (!(irs = memget(sizeof *irs))) {
137 memset(irs, 0x5e, sizeof *irs);
138 irs->options = strdup(options);
139 irs->res = NULL;
140 irs->free_res = NULL;
141 memset(irs->accessors, 0, sizeof irs->accessors);
142 memset(irs->map_rules, 0, sizeof irs->map_rules);
143 init_map_rules(irs, conf_file);
144 acc->private = irs;
170 struct gen_p *irs = (struct gen_p *)this->private;
172 if (irs->res == NULL) {
181 if (((irs->res->options & RES_INIT) == 0U) && res_ninit(irs->res) < 0)
184 return (irs->res);
190 struct gen_p *irs = (struct gen_p *)this->private;
197 if (irs->res && irs->free_res) {
198 res_nclose(irs->res);
199 (*irs->free_res)(irs->res);
202 irs->res = res;
203 irs->free_res = free_res;
206 for (rule = irs->map_rules[irs_ho]; rule; rule = rule->next) {
211 for (rule = irs->map_rules[irs_nw]; rule; rule = rule->next) {
221 struct gen_p *irs = (struct gen_p *)this->private;
226 while (irs->map_rules[n] != NULL)
227 irs->map_rules[n] = release_rule(irs->map_rules[n]);
232 if (irs->accessors[n].gr != NULL)
233 (*irs->accessors[n].gr->close)(irs->accessors[n].gr);
234 if (irs->accessors[n].pw != NULL)
235 (*irs->accessors[n].pw->close)(irs->accessors[n].pw);
236 if (irs->accessors[n].sv != NULL)
237 (*irs->accessors[n].sv->close)(irs->accessors[n].sv);
238 if (irs->accessors[n].pr != NULL)
239 (*irs->accessors[n].pr->close)(irs->accessors[n].pr);
240 if (irs->accessors[n].ho != NULL)
241 (*irs->accessors[n].ho->close)(irs->accessors[n].ho);
242 if (irs->accessors[n].nw != NULL)
243 (*irs->accessors[n].nw->close)(irs->accessors[n].nw);
244 if (irs->accessors[n].ng != NULL)
245 (*irs->accessors[n].ng->close)(irs->accessors[n].ng);
247 if (irs->accessors[n].acc != NULL)
248 (*irs->accessors[n].acc->close)(irs->accessors[n].acc);
252 free((void*)irs->options);
254 if (irs->res && irs->free_res)
255 (*irs->free_res)(irs->res);
258 memput(irs, sizeof *irs);
285 add_rule(struct gen_p *irs,
312 new->inst = &irs->accessors[acc];
336 rules = &irs->map_rules[map];
347 inst = &irs->accessors[acc];
349 inst->acc = (*accs[acc])(irs->options);
371 default_map_rules(struct gen_p *irs) {
373 add_rule(irs, irs_gr, irs_lcl, "");
374 add_rule(irs, irs_pw, irs_lcl, "");
375 add_rule(irs, irs_sv, irs_lcl, "");
376 add_rule(irs, irs_pr, irs_lcl, "");
377 add_rule(irs, irs_ho, irs_dns, "continue");
378 add_rule(irs, irs_ho, irs_lcl, "");
379 add_rule(irs, irs_nw, irs_dns, "continue");
380 add_rule(irs, irs_nw, irs_lcl, "");
381 add_rule(irs, irs_ng, irs_lcl, "");
385 init_map_rules(struct gen_p *irs, const char *conf_file) {
394 default_map_rules(irs);
432 add_rule(irs, map, acc, options);