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 */
};