diff options
| author | Paul Kocialkowski <contact@paulk.fr> | 2012-08-14 13:57:53 +0200 |
|---|---|---|
| committer | Paul Kocialkowski <contact@paulk.fr> | 2012-08-14 13:57:53 +0200 |
| commit | 76f203a125733a30964c5696e4dcb60c152db675 (patch) | |
| tree | 60f2289ef5c28bcd85a6c86706c129810bc3de1e /meif.c | |
| parent | 9a5827778189b7e0f91879430a4e160567ee6bbd (diff) | |
| download | bcm4751-76f203a125733a30964c5696e4dcb60c152db675.tar.gz bcm4751-76f203a125733a30964c5696e4dcb60c152db675.tar.bz2 bcm4751-76f203a125733a30964c5696e4dcb60c152db675.zip | |
MEIF: Added NACK structure and a few reasons
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'meif.c')
| -rw-r--r-- | meif.c | 26 |
1 files changed, 25 insertions, 1 deletions
@@ -431,6 +431,7 @@ int meif_send_patch(int stage) int meif_dispatch(struct meif_message *meif_message) { struct meif_config_values *config_values; + struct meif_nack *nack; static int patch_send_stage = 0; switch(meif_message->command) { @@ -441,13 +442,36 @@ int meif_dispatch(struct meif_message *meif_message) patch_send_stage = 2; meif_send_patch(patch_send_stage); } else if(patch_send_stage == 2) { + patch_send_stage = 3; printf("Ready to switch protocol!\n"); return -1; } break; case MEIF_NACK_MSG: - printf("Got a NACK message\n\n"); + printf("Got a NACK message\n"); + + if(meif_message->data != NULL && meif_message->length >= sizeof(struct meif_nack)) { + nack = (struct meif_nack *) meif_message->data; + switch(nack->reason) { + case MEIF_NACK_GARBAGE_RECEIVED: + printf("Reason is: MEIF_NACK_GARBAGE_RECEIVED\n"); + break; + case MEIF_NACK_CHECKSUM_ERROR: + printf("Reason is: MEIF_NACK_CHECKSUM_ERROR\n"); + if(patch_send_stage > 0) { + patch_send_stage = 0; + printf("Patch send request failed, aborting!\n"); + } + break; + default: + printf("Reason is: MEIF_NACK_UNKNOWN\n"); + break; + } + } + + printf("\n"); + break; case MEIF_STATE_REPORT_MSG: printf("Got a STATE_REPORT message\n\n"); |
