Lines Matching defs:sscf

68 static void sscfu_unqueue(struct sscfu *sscf);
81 struct sscfu *sscf;
83 MEMZALLOC(sscf, struct sscfu *, sizeof(struct sscfu));
84 if (sscf == NULL)
87 sscf->funcs = funcs;
88 sscf->aarg = a;
89 sscf->state = SSCFU_RELEASED;
90 sscf->inhand = 0;
91 SIGQ_INIT(&sscf->sigs);
92 sscf->debug = 0;
94 return (sscf);
101 sscfu_reset(struct sscfu *sscf)
103 sscf->state = SSCFU_RELEASED;
104 sscf->inhand = 0;
105 SIGQ_CLEAR(&sscf->sigs);
112 sscfu_destroy(struct sscfu *sscf)
114 SIGQ_CLEAR(&sscf->sigs);
115 MEMFREE(sscf);
119 sscfu_getstate(const struct sscfu *sscf)
121 return (sscf->state);
175 set_state(struct sscfu *sscf, enum sscfu_state state)
177 VERBOSE(sscf, SSCFU_DBG_STATE, (sscf, sscf->aarg,
179 sscf_states[sscf->state], sscf_states[state]));
180 sscf->state = state;
189 sscfu_input(struct sscfu *sscf, enum sscop_aasig sig,
192 sscf->inhand = 1;
194 VERBOSE(sscf, SSCFU_DBG_LSIG, (sscf, sscf->aarg,
195 "SSCF got signal %d. in state %s", sig, sscf_states[sscf->state]));
201 switch (sscf->state) {
209 set_state(sscf, SSCFU_RELEASED);
210 AA_SIG(sscf, SAAL_RELEASE_indication, m);
219 set_state(sscf, SSCFU_RELEASED);
220 AA_SIG(sscf, SAAL_RELEASE_indication, m);
224 set_state(sscf, SSCFU_RELEASED);
225 AA_SIG(sscf, SAAL_RELEASE_indication, m);
232 switch (sscf->state) {
235 set_state(sscf, SSCFU_ESTABLISHED);
236 SSCOP_AASIG(sscf, SSCOP_ESTABLISH_response, NULL, 1);
237 AA_SIG(sscf, SAAL_ESTABLISH_indication, m);
252 switch (sscf->state) {
260 set_state(sscf, SSCFU_ESTABLISHED);
261 AA_SIG(sscf, SAAL_ESTABLISH_confirm, m);
275 switch (sscf->state) {
282 set_state(sscf, SSCFU_RELEASED);
283 AA_SIG(sscf, SAAL_RELEASE_confirm, NULL);
294 sscf->funcs->window(sscf, sscf->aarg, 1);
295 switch (sscf->state) {
304 AA_SIG(sscf, SAAL_DATA_indication, m);
315 switch (sscf->state) {
323 SSCOP_AASIG(sscf, SSCOP_RECOVER_response, NULL, 0);
324 AA_SIG(sscf, SAAL_ESTABLISH_indication, NULL);
334 switch (sscf->state) {
344 SSCOP_AASIG(sscf, SSCOP_RESYNC_response, NULL, 0);
345 AA_SIG(sscf, SAAL_ESTABLISH_indication, m);
357 switch (sscf->state) {
365 set_state(sscf, SSCFU_ESTABLISHED);
366 AA_SIG(sscf, SAAL_ESTABLISH_confirm, NULL);
373 AA_SIG(sscf, SAAL_UDATA_indication, m);
398 sscfu_unqueue(sscf);
402 VERBOSE(sscf, SSCFU_DBG_ERR, (sscf, sscf->aarg,
403 "bad signal %d. in state %s", sig, sscf_states[sscf->state]));
404 sscfu_unqueue(sscf);
412 sscfu_dosig(struct sscfu *sscf, enum saal_sig sig, struct SSCFU_MBUF_T *m)
414 VERBOSE(sscf, SSCFU_DBG_EXEC, (sscf, sscf->aarg,
416 sscf_sigs[sig], sscf_states[sscf->state]));
422 switch (sscf->state) {
425 set_state(sscf, SSCFU_AWAITING_ESTABLISH);
426 SSCOP_AASIG(sscf, SSCOP_ESTABLISH_request, m, 1);
435 set_state(sscf, SSCFU_AWAITING_ESTABLISH);
436 SSCOP_AASIG(sscf, SSCOP_ESTABLISH_request, m, 1);
440 set_state(sscf, SSCFU_RESYNC);
441 SSCOP_AASIG(sscf, SSCOP_RESYNC_request, m, 0);
453 switch(sscf->state) {
458 AA_SIG(sscf, SAAL_RELEASE_confirm, NULL);
462 set_state(sscf, SSCFU_AWAITING_RELEASE);
463 SSCOP_AASIG(sscf, SSCOP_RELEASE_request, m, 0);
472 set_state(sscf, SSCFU_AWAITING_RELEASE);
473 SSCOP_AASIG(sscf, SSCOP_RELEASE_request, m, 0);
477 set_state(sscf, SSCFU_AWAITING_RELEASE);
478 SSCOP_AASIG(sscf, SSCOP_RELEASE_request, m, 0);
485 switch (sscf->state) {
494 SSCOP_AASIG(sscf, SSCOP_DATA_request, m, 0);
505 SSCOP_AASIG(sscf, SSCOP_UDATA_request, m, 0);
520 VERBOSE(sscf, SSCFU_DBG_ERR, (sscf, sscf->aarg,
522 sscf_states[sscf->state]));
529 sscfu_saalsig(struct sscfu *sscf, enum saal_sig sig, struct SSCFU_MBUF_T *m)
533 if (sscf->inhand) {
534 VERBOSE(sscf, SSCFU_DBG_EXEC, (sscf, sscf->aarg,
536 sscf_sigs[sig], sscf_states[sscf->state]));
542 SIGQ_APPEND(&sscf->sigs, s);
546 sscf->inhand = 1;
547 sscfu_dosig(sscf, sig, m);
548 sscfu_unqueue(sscf);
556 sscfu_unqueue(struct sscfu *sscf)
560 while ((s = SIGQ_GET(&sscf->sigs)) != NULL) {
561 sscfu_dosig(sscf, s->sig, s->m);
564 sscf->inhand = 0;
568 sscfu_setdebug(struct sscfu *sscf, u_int n)
570 sscf->debug = n;
574 sscfu_getdebug(const struct sscfu *sscf)
576 return (sscf->debug);