FreeCalypso > hg > freecalypso-tools
view rvinterf/include/ffserr.h @ 497:74610c4f10f7
target-utils: added 10 ms delay at the end of abb_power_off()
The deosmification of the ABB access code (replacement of osmo_delay_ms()
bogus delays with correctly-timed ones, which are significantly shorter)
had one annoying side effect: when executing the poweroff command from
any of the programs, one last '=' prompt character was being sent (and
received by the x86 host) as the Calypso board powers off. With delays
being shorter now, the abb_power_off() function was returning and the
standalone program's main loop was printing its prompt before the Iota chip
fully executed the switch-off sequence!
I thought about inserting an endless tight loop at the end of the
abb_power_off() function, but the implemented solution of a 10 ms delay
is a little nicer IMO because if the DEVOFF operation doesn't happen for
some reason in a manual hacking scenario, there won't be an artificial
blocker in the form of a tight loop keeping us from further poking around.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 25 May 2019 20:44:05 +0000 |
parents | e7502631a0f9 |
children |
line wrap: on
line source
/* * FFS error codes as returned in TMFFS2 response byte packets: * these are positive, whereas the ones in the gsm-fw code * are negative. */ enum TMFFS_ERRORS { TMFFS_ERR_NODEVICE = 1, /* flash device unknown */ TMFFS_ERR_CORRUPTED = 2, /* filesystem corrupted!? */ TMFFS_ERR_NOPREFORMAT = 3, /* ffs not preformatted */ TMFFS_ERR_NOFORMAT = 4, /* ffs not formatted */ TMFFS_ERR_BADFORMAT = 5, /* incompatible ffs version, re-format needed */ TMFFS_ERR_MAGIC = 6, /* bad magic */ TMFFS_ERR_AGAIN = 7, /* not ready, try again later */ TMFFS_ERR_NOSYS = 8, /* function not implemented */ TMFFS_ERR_DRIVER = 9, /* ffs device driver error */ TMFFS_ERR_NOSPACE = 10, /* out of data space */ TMFFS_ERR_FSFULL = 11, /* file system full, no free inodes */ TMFFS_ERR_BADNAME = 12, /* bad filename */ TMFFS_ERR_NOTFOUND = 13, /* object not found */ TMFFS_ERR_EXISTS = 14, /* object exists */ TMFFS_ERR_ACCESS = 15, /* access permission violation */ TMFFS_ERR_NAMETOOLONG = 16, /* filename too long */ TMFFS_ERR_INVALID = 17, /* invalid argument */ TMFFS_ERR_DIRNOTEMPTY = 18, /* directory not empty */ TMFFS_ERR_NOTADIR = 19, /* object is not a directory */ TMFFS_ERR_SPARE = 20, /* SPARE */ TMFFS_ERR_FILETOOBIG = 21, /* file too big */ TMFFS_ERR_NOTAFILE = 22, /* object is not a file */ TMFFS_ERR_PATHTOODEEP = 23, /* path too deep */ TMFFS_ERR_NUMFD = 24, /* Max number of open files reached */ TMFFS_ERR_BADFD = 25, /* Bad file descriptor */ TMFFS_ERR_BADOP = 26, /* Bad operation */ TMFFS_ERR_LOCKED = 27, /* The file is locked */ TMFFS_ERR_TOOBIG = 30, /* too big (tmffs buffer overflow) */ TMFFS_ERR_MEMORY = 31, /* out of memory */ TMFFS_ERR_MSGSEND = 32, /* message send failed */ /* debug errors - ??? */ TMFFS_ERR_SIBLINGLOOP = 40, /* directory sibling loop */ TMFFS_ERR_NOBLOCKS = 41, /* No more blocks!? */ TMFFS_ERR_DBR = 42, /* Data reclaim did not finish!? */ TMFFS_ERR_RECLAIMLOOP = 43 /* Data reclaim loop */ };