aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rfsv.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rfsv.cc')
-rw-r--r--lib/rfsv.cc230
1 files changed, 76 insertions, 154 deletions
diff --git a/lib/rfsv.cc b/lib/rfsv.cc
index 3b9dc6a..0b7fd42 100644
--- a/lib/rfsv.cc
+++ b/lib/rfsv.cc
@@ -1,158 +1,80 @@
#include "rfsv.h"
+#include "Enum.h"
-char *rfsv::
-opErr(long status)
-{
- enum errs e = (enum errs) status;
- switch (e) {
- case E_PSI_GEN_NONE:
- return "no error";
- case E_PSI_GEN_FAIL:
- return "general";
- case E_PSI_GEN_ARG:
- return "bad argument";
- case E_PSI_GEN_OS:
- return "OS error";
- case E_PSI_GEN_NSUP:
- return "not supported";
- case E_PSI_GEN_UNDER:
- return "numeric underflow";
- case E_PSI_GEN_OVER:
- return "numeric overflow";
- case E_PSI_GEN_RANGE:
- return "numeric exception";
- case E_PSI_GEN_INUSE:
- return "in use";
- case E_PSI_GEN_NOMEMORY:
- return "out of memory";
- case E_PSI_GEN_NOSEGMENTS:
- return "out of segments";
- case E_PSI_GEN_NOSEM:
- return "out of semaphores";
- case E_PSI_GEN_NOPROC:
- return "out of processes";
- case E_PSI_GEN_OPEN:
- return "already open";
- case E_PSI_GEN_NOTOPEN:
- return "not open";
- case E_PSI_GEN_IMAGE:
- return "bad image";
- case E_PSI_GEN_RECEIVER:
- return "receiver error";
- case E_PSI_GEN_DEVICE:
- return "device error";
- case E_PSI_GEN_FSYS:
- return "no filesystem";
- case E_PSI_GEN_START:
- return "not ready";
- case E_PSI_GEN_NOFONT:
- return "no font";
- case E_PSI_GEN_TOOWIDE:
- return "too wide";
- case E_PSI_GEN_TOOMANY:
- return "too many";
- case E_PSI_FILE_EXIST:
- return "file already exists";
- case E_PSI_FILE_NXIST:
- return "no such file";
- case E_PSI_FILE_WRITE:
- return "write error";
- case E_PSI_FILE_READ:
- return "read error";
- case E_PSI_FILE_EOF:
- return "end of file";
- case E_PSI_FILE_FULL:
- return "disk/serial read buffer full";
- case E_PSI_FILE_NAME:
- return "invalid name";
- case E_PSI_FILE_ACCESS:
- return "access denied";
- case E_PSI_FILE_LOCKED:
- return "ressource locked";
- case E_PSI_FILE_DEVICE:
- return "no such device";
- case E_PSI_FILE_DIR:
- return "no such directory";
- case E_PSI_FILE_RECORD:
- return "no such record";
- case E_PSI_FILE_RDONLY:
- return "file is read-only";
- case E_PSI_FILE_INV:
- return "invalid I/O operation";
- case E_PSI_FILE_PENDING:
- return "I/O pending (not yet completed)";
- case E_PSI_FILE_VOLUME:
- return "invalid volume name";
- case E_PSI_FILE_CANCEL:
- return "cancelled";
- case E_PSI_FILE_ALLOC:
- return "no memory for control block";
- case E_PSI_FILE_DISC:
- return "unit disconnected";
- case E_PSI_FILE_CONNECT:
- return "already connected";
- case E_PSI_FILE_RETRAN:
- return "retransmission threshold exceeded";
- case E_PSI_FILE_LINE:
- return "physical link failure";
- case E_PSI_FILE_INACT:
- return "inactivity timer expired";
- case E_PSI_FILE_PARITY:
- return "serial parity error";
- case E_PSI_FILE_FRAME:
- return "serial framing error";
- case E_PSI_FILE_OVERRUN:
- return "serial overrun error";
- case E_PSI_MDM_CONFAIL:
- return "modem cannot connect to remote modem";
- case E_PSI_MDM_BUSY:
- return "remote modem busy";
- case E_PSI_MDM_NOANS:
- return "remote modem did not answer";
- case E_PSI_MDM_BLACKLIST:
- return "number blacklisted by the modem";
- case E_PSI_FILE_NOTREADY:
- return "drive not ready";
- case E_PSI_FILE_UNKNOWN:
- return "unknown media";
- case E_PSI_FILE_DIRFULL:
- return "directory full";
- case E_PSI_FILE_PROTECT:
- return "write-protected";
- case E_PSI_FILE_CORRUPT:
- return "media corrupt";
- case E_PSI_FILE_ABORT:
- return "aborted operation";
- case E_PSI_FILE_ERASE:
- return "failed to erase flash media";
- case E_PSI_FILE_INVALID:
- return "invalid file for DBF system";
- case E_PSI_GEN_POWER:
- return "power failure";
- case E_PSI_FILE_TOOBIG:
- return "too big";
- case E_PSI_GEN_DESCR:
- return "bad descriptor";
- case E_PSI_GEN_LIB:
- return "bad entry point";
- case E_PSI_FILE_NDISC:
- return "could not diconnect";
- case E_PSI_FILE_DRIVER:
- return "bad driver";
- case E_PSI_FILE_COMPLETION:
- return "operation not completed";
- case E_PSI_GEN_BUSY:
- return "server busy";
- case E_PSI_GEN_TERMINATED:
- return "terminated";
- case E_PSI_GEN_DIED:
- return "died";
- case E_PSI_FILE_HANDLE:
- return "bad handle";
- case E_PSI_NOT_SIBO:
- return "invalid operation for RFSV16";
- default:
- return "Unknown error";
- }
+ENUM_DEFINITION(rfsv::errs, rfsv::E_PSI_GEN_NONE) {
+ stringRep.add(rfsv::E_PSI_GEN_NONE, "no error");
+ stringRep.add(rfsv::E_PSI_GEN_FAIL, "general");
+ stringRep.add(rfsv::E_PSI_GEN_ARG, "bad argument");
+ stringRep.add(rfsv::E_PSI_GEN_OS, "OS error");
+ stringRep.add(rfsv::E_PSI_GEN_NSUP, "not supported");
+ stringRep.add(rfsv::E_PSI_GEN_UNDER, "numeric underflow");
+ stringRep.add(rfsv::E_PSI_GEN_OVER, "numeric overflow");
+ stringRep.add(rfsv::E_PSI_GEN_RANGE, "numeric exception");
+ stringRep.add(rfsv::E_PSI_GEN_INUSE, "in use");
+ stringRep.add(rfsv::E_PSI_GEN_NOMEMORY, "out of memory");
+ stringRep.add(rfsv::E_PSI_GEN_NOSEGMENTS, "out of segments");
+ stringRep.add(rfsv::E_PSI_GEN_NOSEM, "out of semaphores");
+ stringRep.add(rfsv::E_PSI_GEN_NOPROC, "out of processes");
+ stringRep.add(rfsv::E_PSI_GEN_OPEN, "already open");
+ stringRep.add(rfsv::E_PSI_GEN_NOTOPEN, "not open");
+ stringRep.add(rfsv::E_PSI_GEN_IMAGE, "bad image");
+ stringRep.add(rfsv::E_PSI_GEN_RECEIVER, "receiver error");
+ stringRep.add(rfsv::E_PSI_GEN_DEVICE, "device error");
+ stringRep.add(rfsv::E_PSI_GEN_FSYS, "no filesystem");
+ stringRep.add(rfsv::E_PSI_GEN_START, "not ready");
+ stringRep.add(rfsv::E_PSI_GEN_NOFONT, "no font");
+ stringRep.add(rfsv::E_PSI_GEN_TOOWIDE, "too wide");
+ stringRep.add(rfsv::E_PSI_GEN_TOOMANY, "too many");
+ stringRep.add(rfsv::E_PSI_FILE_EXIST, "file already exists");
+ stringRep.add(rfsv::E_PSI_FILE_NXIST, "no such file");
+ stringRep.add(rfsv::E_PSI_FILE_WRITE, "write error");
+ stringRep.add(rfsv::E_PSI_FILE_READ, "read error");
+ stringRep.add(rfsv::E_PSI_FILE_EOF, "end of file");
+ stringRep.add(rfsv::E_PSI_FILE_FULL, "disk/serial read buffer full");
+ stringRep.add(rfsv::E_PSI_FILE_NAME, "invalid name");
+ stringRep.add(rfsv::E_PSI_FILE_ACCESS, "access denied");
+ stringRep.add(rfsv::E_PSI_FILE_LOCKED, "ressource locked");
+ stringRep.add(rfsv::E_PSI_FILE_DEVICE, "no such device");
+ stringRep.add(rfsv::E_PSI_FILE_DIR, "no such directory");
+ stringRep.add(rfsv::E_PSI_FILE_RECORD, "no such record");
+ stringRep.add(rfsv::E_PSI_FILE_RDONLY, "file is read-only");
+ stringRep.add(rfsv::E_PSI_FILE_INV, "invalid I/O operation");
+ stringRep.add(rfsv::E_PSI_FILE_PENDING, "I/O pending (not yet completed)");
+ stringRep.add(rfsv::E_PSI_FILE_VOLUME, "invalid volume name");
+ stringRep.add(rfsv::E_PSI_FILE_CANCEL, "cancelled");
+ stringRep.add(rfsv::E_PSI_FILE_ALLOC, "no memory for control block");
+ stringRep.add(rfsv::E_PSI_FILE_DISC, "unit disconnected");
+ stringRep.add(rfsv::E_PSI_FILE_CONNECT, "already connected");
+ stringRep.add(rfsv::E_PSI_FILE_RETRAN, "retransmission threshold exceeded");
+ stringRep.add(rfsv::E_PSI_FILE_LINE, "physical link failure");
+ stringRep.add(rfsv::E_PSI_FILE_INACT, "inactivity timer expired");
+ stringRep.add(rfsv::E_PSI_FILE_PARITY, "serial parity error");
+ stringRep.add(rfsv::E_PSI_FILE_FRAME, "serial framing error");
+ stringRep.add(rfsv::E_PSI_FILE_OVERRUN, "serial overrun error");
+ stringRep.add(rfsv::E_PSI_MDM_CONFAIL, "modem cannot connect to remote modem");
+ stringRep.add(rfsv::E_PSI_MDM_BUSY, "remote modem busy");
+ stringRep.add(rfsv::E_PSI_MDM_NOANS, "remote modem did not answer");
+ stringRep.add(rfsv::E_PSI_MDM_BLACKLIST, "number blacklisted by the modem");
+ stringRep.add(rfsv::E_PSI_FILE_NOTREADY, "drive not ready");
+ stringRep.add(rfsv::E_PSI_FILE_UNKNOWN, "unknown media");
+ stringRep.add(rfsv::E_PSI_FILE_DIRFULL, "directory full");
+ stringRep.add(rfsv::E_PSI_FILE_PROTECT, "write-protected");
+ stringRep.add(rfsv::E_PSI_FILE_CORRUPT, "media corrupt");
+ stringRep.add(rfsv::E_PSI_FILE_ABORT, "aborted operation");
+ stringRep.add(rfsv::E_PSI_FILE_ERASE, "failed to erase flash media");
+ stringRep.add(rfsv::E_PSI_FILE_INVALID, "invalid file for DBF system");
+ stringRep.add(rfsv::E_PSI_GEN_POWER, "power failure");
+ stringRep.add(rfsv::E_PSI_FILE_TOOBIG, "too big");
+ stringRep.add(rfsv::E_PSI_GEN_DESCR, "bad descriptor");
+ stringRep.add(rfsv::E_PSI_GEN_LIB, "bad entry point");
+ stringRep.add(rfsv::E_PSI_FILE_NDISC, "could not diconnect");
+ stringRep.add(rfsv::E_PSI_FILE_DRIVER, "bad driver");
+ stringRep.add(rfsv::E_PSI_FILE_COMPLETION, "operation not completed");
+ stringRep.add(rfsv::E_PSI_GEN_BUSY, "server busy");
+ stringRep.add(rfsv::E_PSI_GEN_TERMINATED, "terminated");
+ stringRep.add(rfsv::E_PSI_GEN_DIED, "died");
+ stringRep.add(rfsv::E_PSI_FILE_HANDLE, "bad handle");
+ stringRep.add(rfsv::E_PSI_NOT_SIBO, "invalid operation for RFSV16");
+ stringRep.add(rfsv::E_PSI_INTERNAL, "libplp internal error");
}