diff options
author | José Bollo <jose.bollo@iot.bzh> | 2016-05-23 14:26:54 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2016-05-23 14:27:09 +0200 |
commit | fca2e14e1d57d7b89d1a6de07075cc0e6e157ca7 (patch) | |
tree | 479bd5382cb943356c32f12890991afb1d1ebcf4 /src/afb-context.c | |
parent | e6d40a8447eff5e1be00ea35715092876e0520fa (diff) |
Setting and checking LOA
Change-Id: I02c3795c6e212491605861228eb60b731be78537
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/afb-context.c')
-rw-r--r-- | src/afb-context.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/afb-context.c b/src/afb-context.c index a7010dbb..0492ecbf 100644 --- a/src/afb-context.c +++ b/src/afb-context.c @@ -138,16 +138,19 @@ int afb_context_check_loa(struct afb_context *context, unsigned loa) return context->loa_in >= loa; } -void afb_context_change_loa(struct afb_context *context, unsigned loa) +int afb_context_change_loa(struct afb_context *context, unsigned loa) { - assert(context->validated); + if (!context->validated || loa > 7) + return 0; - if (loa == context->loa_in) + if (loa == context->loa_in && !context->loa_changed) context->loa_changing = 0; else { - context->loa_changing = 1; context->loa_out = loa & 7; + context->loa_changing = 1; + context->loa_changed = 0; } + return 1; } |