|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T e
Length: 4403 (0x1133)
Types: TextFile
Names: »error_str.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦038380b96⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦038380b96⟧
└─⟦this⟧ »error_str.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦0732ea0cf⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦0732ea0cf⟧
└─⟦this⟧ »../../dtia/release_apollo_2.1/error_str.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦25fab149a⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦25fab149a⟧
└─⟦this⟧ »../../dtia/release_sun_2.1/error_str.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦be254d495⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦be254d495⟧
└─⟦this⟧ »../../dtia/release_aix_2.1/error_str.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦c67979795⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦c67979795⟧
└─⟦this⟧ »../../dtia/release_hp_2.1/error_str.c«
#ifndef lint
#ifndef DEBUG
static char SCCS_id[] = "@(#)error_str.c 2.1 90/08/10 17:38:33 Copyright(c) 1990 by Rational.";
#else
static char SCCS_id[] = "@(#)error_str.c DEBUG 2.1 90/08/10 17:38:33 Copyright(c) 1990 by Rational.";
#endif
#endif
#define ERROR_STR
#include "talk.h"
#undef ERROR_STR
extern int sys_nerr;
extern char *sys_errlist[];
extern int errno;
#define SEPARATOR (-1)
static int errors_list[] = {
R_CREATE,
E_POLICY_ERROR,
E_STATUS_ERROR,
E_USE_ERROR,
E_DEVICE_ERROR,
E_NAME_ERROR,
E_UNSUPPORTED,
SEPARATOR,
R_PUT,
E_POLICY_ERROR,
E_RESOURCE_LIMIT,
E_STATUS_ERROR,
E_USE_ERROR,
E_DEVICE_ERROR,
E_NAME_ERROR,
E_UNSUPPORTED,
SEPARATOR,
R_GET,
E_POLICY_ERROR,
E_RESOURCE_LIMIT,
E_STATUS_ERROR,
E_DEVICE_ERROR,
E_USE_ERROR,
E_NAME_ERROR,
E_UNSUPPORTED,
SEPARATOR,
R_LAST_UPDATE,
E_POLICY_ERROR,
E_STATUS_ERROR,
E_DEVICE_ERROR,
E_NAME_ERROR,
E_USE_ERROR,
SEPARATOR,
R_FILE_EXISTS,
E_POLICY_ERROR,
E_STATUS_ERROR,
E_DEVICE_ERROR,
E_NAME_ERROR,
E_USE_ERROR,
SEPARATOR,
R_COPY,
E_ACCESS_ERROR,
E_POLICY_ERROR,
E_RESOURCE_LIMIT,
E_STATUS_ERROR,
E_DEVICE_ERROR,
E_USE_ERROR,
E_NAME_ERROR,
E_UNSUPPORTED,
SEPARATOR,
R_DELETE,
E_ACCESS_ERROR,
E_POLICY_ERROR,
E_STATUS_ERROR,
E_DEVICE_ERROR,
E_NAME_ERROR,
E_USE_ERROR,
SEPARATOR,
R_MOVE,
E_POLICY_ERROR,
E_DEVICE_ERROR,
E_NAME_ERROR,
E_USE_ERROR,
SEPARATOR,
R_LS,
SEPARATOR,
R_INPUT_TO_SHELL,
E_ACCESS_ERROR,
E_RESOURCE_LIMIT,
E_STATUS_ERROR,
E_DEVICE_ERROR,
E_USE_ERROR,
E_COMMAND_ERROR,
E_COMMAND_TERMINATED,
E_COMMAND_TIMED_OUT,
E_UNSUPPORTED,
SEPARATOR,
R_SIGNAL_TO_SHELL,
E_COMMAND_TERMINATED,
SEPARATOR
};
static int acceptable(rat_req,err) int rat_req,err;
{
int index;
int current_request;
if (err == E_OK) return TRUE;
index = 0;
while (index < (sizeof(errors_list)/sizeof(int))) {
current_request = errors_list[index];
if (current_request == rat_req) {
while (errors_list[index] != SEPARATOR) {
if (errors_list[index] == err) return TRUE;
index++;
}
return FALSE;
} else {
while (errors_list[index] != SEPARATOR) index++;
index++;
}
}
return FALSE;
}
static struct _s {
int unix_error,rational_error;
} u_to_r[] = {
{ EACCES, E_POLICY_ERROR },
{ EAGAIN, E_RESOURCE_LIMIT},
{ EBADF, E_STATUS_ERROR },
{ EBUSY, E_DEVICE_ERROR },
{ EEXIST, E_USE_ERROR },
{ EFAULT, E_USE_ERROR },
{ EFBIG, E_USE_ERROR },
{ EINTR, E_DEVICE_ERROR },
{ EINVAL, E_DEVICE_ERROR },
{ EIO, E_DEVICE_ERROR },
{ EISDIR, E_USE_ERROR },
{ ELOOP, E_NAME_ERROR },
{ EMFILE, E_DEVICE_ERROR },
{ ENAMETOOLONG, E_NAME_ERROR },
{ ENFILE, E_DEVICE_ERROR },
{ ENOENT, E_NAME_ERROR },
{ ENOMEM, E_RESOURCE_LIMIT},
{ ENOSPC, E_DEVICE_ERROR },
{ ENOTDIR, E_USE_ERROR },
{ ENOTEMPTY, E_USE_ERROR },
{ ENXIO, E_DEVICE_ERROR },
{ EOPNOTSUPP, E_UNSUPPORTED },
{ EPERM, E_ACCESS_ERROR },
{ EPIPE, E_DEVICE_ERROR },
{ ERANGE, E_DEVICE_ERROR },
{ EROFS, E_USE_ERROR },
{ ESRCH, E_COMMAND_TERMINATED},
{ ECHILD, E_COMMAND_TERMINATED},
{ EWOULDBLOCK, E_DEVICE_ERROR },
{ EXDEV, E_DEVICE_ERROR },
{ EALREADYEXISTS, E_POLICY_ERROR }
};
static int unix_to_rational(e) int e;
{
int index;
for (index = 0 ; index < sizeof(u_to_r) / sizeof (struct _s) ; index++)
if (u_to_r[index].unix_error == e)
return u_to_r[index].rational_error;
return -1;
}
static char *error_str(e) int e;
{
if (e == E_OK) return "";
else {
if ((e>0) && (e<sys_nerr))
return sys_errlist[e];
else switch (e) {
case EALREADYEXISTS:
return "Already Exists";
default:
return "Invalid Error Number";
}
}
}
int report_unix_error(fout,req,err) int req,err;
{
int rat_error;
rat_error = unix_to_rational(err);
if (!acceptable(req,rat_error)) rat_error = E_INTERNAL_ERROR;
if (rw_write_int(fout,F_ERROR) == -1)
return -1;
#ifdef DEBUG
trace_error(rat_error,error_str(err));
#endif
if (rw_write_int(fout,rat_error) == -1)
return -1;
(void)b_flush(TRUE);
if (rw_write_str(fout,error_str(err)) == -1)
return -1;
return rat_error;
}
int report_rational_error(fout,req,err,str)
int req,err;
char *str;
{
if (!acceptable(req,err)) err = E_INTERNAL_ERROR;
if (rw_write_int(fout,F_ERROR) == -1)
return -1;
#ifdef DEBUG
trace_error(err,str);
#endif
if (rw_write_int(fout,err) == -1)
return -1;
(void)b_flush(TRUE);
if (rw_write_str(fout,str) == -1)
return -1;
return err;
}