Source
...
Target
Commits (2)
  • Robert Sprowson's avatar
    Have Net look after its own messages · fdd1d490
    Robert Sprowson authored
    Net was trying to share some messages with the Econet module, though on balance this wasn't particularly useful as it then needed to duplicate message handling code to keep 2 files open. Because those messages were held in AUNMsgs they didn't get tokenised in ROM, overall ending up taking more space.
    
    Register in ResourcesFS at run time for RAM targets, add tokenisation directives for ROM targets, removed redundant !Configure related strings.
    Changed the messages fd to be int's to ensure word alignment.
    Removed inappropriate Service_MessageFileClosed handler, MessageTrans reopens the files (since the fd is in the RMA) so no need to reopen them a second time. This service call is intended to recache direct pointers to tokens, but none are ever taken.
    Save time by just making textbuf a zero length string rather than memset()ing the whole buffer.
    Resolved a couple more compiler warnings (but NetG still doesn't compile).
    Fix bug where a failure to enable the internet event would decrement the internet event count for any other modules interested in that event.
    Use CMHG finalisation rather than atexit().
    Error "AUN not configured" now uses a non zero trappable error number.
    Error number for BadSWI corrected from 0x111 to 0x110.
    
    Requires HdrSrc-2_51 for the error number.
    
    Version 6.25. Tagged as 'Net-6_25'
    fdd1d490
  • Robert Sprowson's avatar
    Build fix · 647c2386
    Robert Sprowson authored
    Messages were ending up registered as Resources.Net.Messages.Net.Messages due to using the wrong makefile variable.
    
    Version 6.26. Tagged as 'Net-6_26'
    647c2386
......@@ -16,14 +16,15 @@
#
COMPONENT = Net
VPATH = @ gwroute
CUSTOMRES = custom
VPATH = gwroute
LIBS = ${UNIXLIB} ${INETLIB} ${SOCK5LIB} ${ASMUTILS}
OBJS = ${OBJ${TARGET}}
CINCLUDES = -ITCPIPLibs:,C:
RES_OBJ =
HDRS =
CFLAGS = -wp
ROMCDEFINES = -DROM
RESFSDIR = ${RESDIR}${SEP}Net
CMHGDEPENDS = mns mnsg mnsi
ifeq ("${CMDHELP}","None")
CMHGDEFINES += -DNO_INTERNATIONAL_HELP
endif
......@@ -48,7 +49,4 @@ swis_e.o:
io_e.o:
${CC} -DEDDS ${CFLAGS} -o $@ io.c
resources:
@echo ${COMPONENT}: resource files are in AUNMsgs
# Dynamic dependencies:
......@@ -14,6 +14,6 @@
|
Dir <Obey$Dir>
amu_machine standalone TARGET=Net
amu_machine standalone TARGET=NetE
amu_machine standalone TARGET=NetE
amu_machine standalone TARGET=NetI
amu_machine standalone TARGET=NetG
......@@ -13,4 +13,4 @@
| limitations under the License.
|
Dir <Obey$Dir>
amu_machine rom
amu_machine rom THROWBACK=-throwback
File added
#{DictTokens}
# Strings in Net/text.c
StaAcc:Station present
NotAcc:Station not present
FullAd:Full address
Noclck:No clock
IfType:Interface
Down:down
StaNum:AUN Station
BrdCst:Broadcast
GlbBct:Global broadcast
AccNet:Known nets
ModSts:Module status
TxStat:TX stats
Data:Data
Immedt:Immediate
ImmRep:Imm_Reply
Retry:Retry
Error:Error
DtaAck:Data_Ack
DtaRej:Data_Rej
Local:local
Global:global
Dscard:Discard
RxStat:RX stats
InvRep:Reply_Rej
MNSBan:Acorn Net
Gteway:gateway
Gtewys:gateways
Warn:Warning
NoMap:No AUN MAP data
NoRout:No AUN Routing data
GwConf:possible GateWay configuration error
BadSta:Station number not available
BadDev:Possible net hardware problem; check device support module
BadInt:No access to network; restart computer to clear
NtvEco:Native Econet
BadGwy:Gateway station is not initialised
GtwSta:Bad station number
# Errors in Net/text.c
BadPort:Bad port number
TooBig:Bad buffer size
PtNtAlc:Port not already allocated
PortAlc:Port already allocated
NoPorts:All ports allocated
BadMask:Bad mask
NoHware:No network hardware
NotConf:AUN not configured
# Strings in Net/netasm.s
TxOK:Transmitted OK
LineJam:There is a problem with the network. Inform your network manager (line jammed).
NetErr:There is a problem with the network. Inform your network manager (transmission failed).
NotLstn:The network station you have requested does not appear to be listening. Try the operation again but if the error persists inform your network manager.
NoClk:The network is not plugged in. Check that the network cable is plugged into the network socket at the back of your computer, if the problem persists inform your network manager.
TxReady:Tx ready
Txing:Transmitting
RxReady:Receive block open
Rxing:Receiving
Rxd:Received
NoReply:There is no reply from the network station requested. Try the operation again but if the error persists inform your network manager.
NotPres:The network station you have requested cannot be found. Try the operation again but if the error persists inform your network manager.
# Errors in Net/netasm.s
BadNumb:Bad number
BadStat:Bad status
StnNLsn:The network station %0 does not appear to be listening. Try the operation again but if the error persists inform your network manager.
StnNRpy:There is no reply from the network station %0. Try the operation again but if the error persists inform your network manager.
StnNPrs:The network station %0 cannot be found. Try the operation again but if the error persists inform your network manager.
StnNErr:There is a problem with the network. Inform your network manager (transmission to %0 failed).
/* (6.24)
/* (6.26)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 6.24
#define Module_MajorVersion_CMHG 6.26
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 04 Mar 2013
#define Module_Date_CMHG 26 Jun 2016
#define Module_MajorVersion "6.24"
#define Module_Version 624
#define Module_MajorVersion "6.26"
#define Module_Version 626
#define Module_MinorVersion ""
#define Module_Date "04 Mar 2013"
#define Module_Date "26 Jun 2016"
#define Module_ApplicationDate "04-Mar-13"
#define Module_ApplicationDate "26-Jun-16"
#define Module_ComponentName "Net"
#define Module_ComponentPath "castle/RiscOS/Sources/Networking/AUN/Net"
#define Module_FullVersion "6.24"
#define Module_HelpVersion "6.24 (04 Mar 2013)"
#define Module_LibraryVersionInfo "6:24"
#define Module_FullVersion "6.26"
#define Module_HelpVersion "6.26 (26 Jun 2016)"
#define Module_LibraryVersionInfo "6:26"
......@@ -129,9 +129,10 @@
#include "text.h"
#include "routecode.h"
#include "mns.h"
#include "NetHdr.h" /* From CMHG */
extern char *inet_ntoa();
extern u_long inet_makeaddr();
extern u_long inet_makeaddr(u_long, u_long);
struct mns mns = { 0 };
int connected_econet = -1;
......@@ -177,14 +178,10 @@ static struct swient mns_ent[MAXSWI+1] =
EnumerateTransmit, HardwareAddresses, NetworkParameters,
};
static void mns_final(void);
static _kernel_oserror *is_aun_configured(void);
static _kernel_oserror *mns_claimv(void);
static _kernel_oserror *mns_evenable(void);
static int do_myaddress(char *ifname, u_long a, u_char net, u_char station);
static void seek_address(char *ifname);
static void read_ifs(int print, int all);
static void mns_releasev(void);
static void atp_request_map_from_server(u_long server);
static void mns_info(int all);
static void process_input(int sock);
......@@ -193,7 +190,7 @@ static void atp_process_input(int sock);
/******************************************************************************/
_kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
_kernel_oserror *mns_init(const char *cmd_tail, int pbase, void *pw)
{
/*
* cmhg module initialisation entry
......@@ -225,14 +222,14 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
((*((unsigned int **)pw)))[1],((*((unsigned int **)pw)))[2]);
/* This must really be done now, cannot wait for do_mns_init() */
memset((char *)&mns, 0, sizeof(mns));
memset(&mns, 0, sizeof(mns));
mns.mns_rxdsock = -1;
mns.mns_txdsock = -1;
mns.mns_atpsock = -1;
mns.mns_routedsock = -1;
/* Open message file for us */
e = init_msgs(MSG_FILE1, msg_fd_mns);
e = init_msgs(Module_MessagesFile, msg_fd_mns);
if (e)
return e;
......@@ -242,22 +239,17 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
goto out3;
/* Install on event vector */
e = mns_claimv();
e = _swix(OS_Claim, _INR(0,2), EventV, mns_event_entry, module_wsp);
if (e)
goto out3;
/* Enable Internet events */
e = mns_evenable();
e = _swix(OS_Byte, _INR(0,1), OsByte_EnableEvent, Event_Internet);
if (e)
goto out2;
/* Install ticker code */
e = calleverytick(tick_entry);
if (e)
goto out2;
/* Open message file for Econet */
e = init_msgs(MSG_FILE, msg_fd_eco);
if (e)
goto out1;
......@@ -295,9 +287,6 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
do_mns_init(0);
}
/* Install code to tidy up on exit */
atexit(mns_final);
/* if a DCI driver has been found, print any warning message */
if (mns.mns_device[0] != 0)
{
......@@ -312,13 +301,12 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
restarting = 1;
setcallback();
return (_kernel_oserror *)0; /* return OK */
return NULL; /* return OK */
out1:
removetickerevent(tick_entry);
_swix(OS_Byte, _INR(0,1), OsByte_DisableEvent, Event_Internet);
out2:
mns_releasev();
_swix(OS_Release, _INR(0,2), EventV, mns_event_entry, module_wsp);
out3:
release_msgs(msg_fd_mns);
......@@ -406,81 +394,6 @@ int do_mns_init(int booting)
/******************************************************************************/
static _kernel_oserror *mns_claimv(void)
{
/*
* Install ourselves on the Event vector
*
* Parameters:
* None
*
* Returns:
* 0 : => success
* !0 : => error (pointer to standard RISC OS error block)
*/
_kernel_swi_regs r;
r.r[0] = EventV;
r.r[1] = (int)mns_event_entry;
r.r[2] = (int)module_wsp;
return (_kernel_swi(OS_Claim, &r, &r));
} /* mns_claimv() */
/******************************************************************************/
static _kernel_oserror *mns_evenable(void)
{
/*
* Enable Internet events so that we can receive them
*
* Parameters:
* None
*
* Returns:
* 0 : => success
* !0 : => error (pointer to standard RISC OS error block)
*/
_kernel_swi_regs r;
r.r[0] = OsByte_EnableEvent;
r.r[1] = Event_Internet;
return (_kernel_swi(OS_Byte, &r, &r));
} /* mns_evenable() */
/******************************************************************************/
static void mns_releasev(void)
{
/* Disable Internet event and remove from event vector
*
* Parameters:
* None
*
* Returns:
* None
*/
_kernel_swi_regs r;
r.r[0] = OsByte_DisableEvent;
r.r[1] = Event_Internet;
(void) _kernel_swi(OS_Byte, &r, &r);
r.r[0] = EventV;
r.r[1] = (int)mns_event_entry;
r.r[2] = (int)module_wsp;
(void) _kernel_swi(OS_Release, &r, &r);
return;
} /* mns_releasev() */
/******************************************************************************/
_kernel_oserror *mns_swi_handler(int swinum, _kernel_swi_regs *r, void *pw)
{
/* cmhg module SWI handler
......@@ -640,18 +553,14 @@ static void mns_shroutes(int argc, char **argv)
/******************************************************************************/
int tick_handler(_kernel_swi_regs *r, void *pw)
_kernel_oserror *tick_handler(_kernel_swi_regs *r, void *pw)
{
/*
* cmhg ticker interrupt handler
* cmhg ticker handler
*
* Parameters:
* r : pointer to registers block
* pw : "R12" value established by module initialisation
*
* Returns:
* 0 => interrupt "claimed"
* !0 => interrupt not "claimed"
*/
int flags = mns.mns_flags;
......@@ -690,7 +599,7 @@ int tick_handler(_kernel_swi_regs *r, void *pw)
mns.mns_flags |= MNS_WANTMAP; /* note that we want the map */
mns.mns_retrydelay = 10;
mns.mns_retrycount = 0;
return 1;
return NULL;
}
if ((flags & MNS_SETADDR) == 0)
......@@ -718,15 +627,15 @@ int tick_handler(_kernel_swi_regs *r, void *pw)
check_rxcbs();
check_txcbs();
return 1;
return NULL;
} /* tick_handler() */
/******************************************************************************/
static void mns_final(void)
_kernel_oserror *mns_final(int fatal, int podule, void *pw)
{
/* Finalisation code registered with atexit()
/* Finalisation code
*
* Parameters:
* None
......@@ -737,16 +646,17 @@ static void mns_final(void)
DEBUGP1("#module finalisation\n\r");
UNUSED(fatal);
UNUSED(podule);
UNUSED(pw);
/* One could argue about the order of releasing the vectors and closing
* the sockets, but this is the way it was.
*/
/* Disable Internet event and remove from event vector */
mns_releasev();
/* Close MessageTrans message files */
release_msgs(msg_fd_eco);
release_msgs(msg_fd_mns);
_swix(OS_Byte, _INR(0,1), OsByte_DisableEvent, Event_Internet);
_swix(OS_Release, _INR(0,2), EventV, mns_event_entry, module_wsp);
/* Close sockets */
free_sockets();
......@@ -757,7 +667,10 @@ static void mns_final(void)
/* remove any added transient callback */
removecallback();
return;
/* Close MessageTrans message files */
release_msgs(msg_fd_mns);
return NULL;
} /* mns_final() */
......@@ -1701,7 +1614,7 @@ static _kernel_oserror *is_aun_configured(void)
{
/* If it is set, then check its value */
if (strncmp(namebuf, "Net", 3) == 0)
return ((_kernel_oserror *)0);
return NULL;
else
/* If it is set to anything else, do not start */
return mns_error(Err_NotConf);
......@@ -1712,7 +1625,7 @@ static _kernel_oserror *is_aun_configured(void)
r.r[1] = AUNBoot;
/* If bit is set return OK, else return eror */
if (_kernel_swi(OS_Byte, &r, &r) == 0 && (r.r[2] & AUNBootBit) !=0)
return (_kernel_oserror *)0;
return NULL;
/* else return saying not configured */
......@@ -1740,29 +1653,18 @@ _kernel_oserror *range_check(int port, int station, int net)
if (net < 0 || net > 255)
return mns_error(Err_BadNet);
return (_kernel_oserror *)0;
return NULL;
} /* range_check() */
/******************************************************************************/
#ifdef OldCode
int
is_wild(port, station, network)
int port, station, network;
{
return ((network == ANY_NETWORK || network == 0 ||
station == ANY_STATION || station == 0 ||
port == ANY_PORT || port == 0) ? 1 : 0);
}
#else
int is_wild(int port, int station, int network)
{
return ((network == ANY_NETWORK || station == ANY_STATION ||
(network == 0 && station == 0) ||
port == ANY_PORT || port == 0) ? 1 : 0);
}
#endif
/******************************************************************************/
......
......@@ -89,8 +89,7 @@ static int reinit_on_callback;
static int do_netmapchanged_on_callback;
/* MessageTrans file descriptors */
char msg_fd_eco[16];
char msg_fd_mns[16];
int msg_fd_mns[4];
struct s_ebuf ebuf;
......@@ -285,7 +284,7 @@ _kernel_oserror *mns_cli_handler(char *arg_string, int arg_count,
callp = &mns_cli_call[cmd_no];
(*(callp->cli_call))(margc, margv);
return (_kernel_oserror *)0;
return NULL;
} /* mns_cli_handler() */
......@@ -308,17 +307,6 @@ void mns_sc_handler(int sn, _kernel_swi_regs *r)
switch (sn)
{
case Service_MessageFileClosed:
DEBUGP1("#Service_MessageFileClosed\n\r");
if (r->r[0] == (int)msg_fd_eco)
(void) init_msgs(MSG_FILE, msg_fd_eco);
else if (r->r[0] == (int)msg_fd_mns)
(void) init_msgs(MSG_FILE1, msg_fd_mns);
DEBUGP1("#mns_sc_handler(): ... exiting\n\r");
return;
break;
case Service_DCIDriverStatus:
DEBUGP2("#Service_DCIDriverStatus: %d\n\r", r->r[2]);
/* If point-to-point driver, then ignore totally */
......@@ -334,7 +322,6 @@ void mns_sc_handler(int sn, _kernel_swi_regs *r)
*/
reinit_on_callback = 1;
setcallback();
return;
break;
......@@ -343,7 +330,8 @@ void mns_sc_handler(int sn, _kernel_swi_regs *r)
/* If it's not the Internet module, do nothing */
if (strcmp((char *)r->r[4], INTERNET_MODULE_NAME) != 0)
return;
/* else it is the Internet module. If starting, reinitialise if device
/* It is the Internet module. If starting, reinitialise if device
* driver present as well
*/
if (r->r[2] == 0)
......@@ -353,6 +341,7 @@ void mns_sc_handler(int sn, _kernel_swi_regs *r)
return;
}
else
{
if (r->r[2] == 1)
{
/* Internet is dying, so go dormant */
......@@ -360,6 +349,7 @@ void mns_sc_handler(int sn, _kernel_swi_regs *r)
(void) do_mns_init(0);
return;
}
}
break;
......@@ -370,7 +360,6 @@ void mns_sc_handler(int sn, _kernel_swi_regs *r)
return;
DEBUGP1("#Service_reset, was a soft reset, reinitialising\n\r");
(void) do_mns_init(0);
return;
break;
......@@ -380,14 +369,14 @@ void mns_sc_handler(int sn, _kernel_swi_regs *r)
connected_econet = -1;
reinit_on_callback = 1;
setcallback();
return;
break;
default:
/* shouldn't really get here, but do nothing */
return;
#ifndef ROM
case Service_ResourceFSStarting:
/* Reregister the messages */
(*(void (*)(void *, void *, void *, void *))r->r[2])(Resources(), 0, 0, (void *)r->r[3]);
break;
#endif
}
return;
......@@ -402,7 +391,7 @@ _kernel_oserror *mns_error(int error)
_kernel_oserror *e;
if (!error)
return (_kernel_oserror *)0;
return NULL;
ebuf.e_nbr = error_blocks[error].err_nbr;
strcpy(ebuf.e_string, error_blocks[error].err_token);
......@@ -411,8 +400,7 @@ _kernel_oserror *mns_error(int error)
memset ((char *)&r, 0, sizeof(r));
r.r[0] = (int)&ebuf;
r.r[1] = ((error == Err_Fatal) || (error == Err_NotConf)) ?
(int)msg_fd_mns : (int)msg_fd_eco;
r.r[1] = (int)msg_fd_mns;
e = _kernel_swi(MessageTrans_ErrorLookup, &r, &r);
return (e ? e : (_kernel_oserror *)&ebuf);
......@@ -427,14 +415,13 @@ _kernel_oserror *mns_error_parm(int error, void *parmp)
_kernel_oserror *e;
if (!error)
return (_kernel_oserror *)0;
return NULL;
ebuf.e_nbr = error_blocks[error].err_nbr;
strcpy(ebuf.e_string, error_blocks[error].err_token);
memset ((char *)&r, 0, sizeof(r));
r.r[0] = (int)&ebuf;
r.r[1] = ((error == Err_Fatal) || (error == Err_NotConf)) ?
(int)msg_fd_mns : (int)msg_fd_eco;
r.r[1] = (int)msg_fd_mns;
r.r[2] = (int)textbuf;
r.r[3] = sizeof(textbuf);
r.r[4] = (int)parmp; /* parameter to substitute for %0 */
......@@ -454,14 +441,14 @@ char *mns_str(int strnbr)
/* prevent unwanted parameter substitution */
memset((char *)&r, 0, sizeof(r));
memset (textbuf, 0, sizeof(textbuf));
*textbuf = '\0';
r.r[0] = (int)msg_fd_mns;
r.r[1] = (int)message_strs[strnbr];
r.r[2] = (int)textbuf;
r.r[3] = sizeof(textbuf);
e = _kernel_swi(MessageTrans_Lookup, &r, &r);
return (e ? message_strs[strnbr] : textbuf);
return (e ? (char *)message_strs[strnbr] : textbuf);
} /* mns_str() */
......@@ -496,14 +483,11 @@ void setcallback(void)
{
callbackflag = 1;
if (callback(callb_entry) != 0)
if (addcallback(callb_entry) != 0)
callbackflag = 0;
restore_irqs(oldstate);
}
else
restore_irqs(oldstate);
return;
restore_irqs(oldstate);
} /* setcallback() */
......@@ -535,13 +519,9 @@ void removecallback(void)
/* Ignore any error. This will only work on RISC OS 3 or later */
_kernel_swi(OS_RemoveCallBack, &regs, &regs);
restore_irqs(oldstate);
}
else
restore_irqs(oldstate);
return;
restore_irqs(oldstate);
} /* removecallback() */
......@@ -571,14 +551,14 @@ void netmapchanged_on_callback(void)
/******************************************************************************/
int callback(int (* func)())
int addcallback(void (*func)(void))
{
_kernel_swi_regs r;
r.r[0] = (int)func;
r.r[1] = (int)module_wsp;
return (_kernel_swi(OS_AddCallBack, &r, &r) != 0 ? -1 : 0);
return (_kernel_swi(OS_AddCallBack, &r, &r) != NULL) ? -1 : 0;
} /* callback() */
......@@ -680,7 +660,7 @@ int callb_handler(const _kernel_swi_regs *rr)
/******************************************************************************/
_kernel_oserror *calleverytick(int (*fun)())
_kernel_oserror *calleverytick(void (*fun)(void))
{
/*
* Install a function on Ticker vector
......@@ -693,24 +673,18 @@ _kernel_oserror *calleverytick(int (*fun)())
* !0 : => error (pointer to standard RISC OS error block)
*/
_kernel_oserror *e;
_kernel_swi_regs r;
r.r[0] = TickerV;
r.r[1] = (int)fun;
r.r[2] = (int)module_wsp;
e = _kernel_swi(OS_Claim, &r, &r);
if (e)
return e;
return (_kernel_oserror *)0;
return _kernel_swi(OS_Claim, &r, &r);
} /* calleverytick() */
/******************************************************************************/
void removetickerevent(int (*fun)())
void removetickerevent(void (*fun)(void))
{
/*
* Remove a previously installed ticker handler
......@@ -729,8 +703,6 @@ void removetickerevent(int (*fun)())
r.r[2] = (int)module_wsp;
(void)_kernel_swi(OS_Release, &r, &r);
return;
} /* removetickerevent() */
/******************************************************************************/
......
......@@ -68,6 +68,8 @@
#else
#include <stdlib.h>
#include "sys/types.h"
#include "sys/uio.h"
#include "sys/socket.h"
......@@ -91,18 +93,20 @@
#include "text.h"
#include "mns.h"
#include "mnsg.h"
#include "NetGHdr.h" /* From CMHG */
#include "gwroute/startup.h"
#include "gwroute/input.h"
#include "gwroute/trace.h"
#include "gwroute/timer.h"
#endif
#ifdef OldCode
extern int mns_final(), mns_event_entry(), tick_entry();
extern int mns_event_entry(), tick_entry();
extern _kernel_oserror *call_econet();
extern _kernel_oserror *do_econet();
extern int *swi_code, *swi_data;
#else
static void mns_final(void);
extern char *inet_ntoa();
#endif
#ifdef OldCode
......@@ -123,8 +127,8 @@ int *routedsock = 0; /* for routed */
int *timerp = 0;
int not_routing = 0;
extern char *message_strs[];
extern struct eblk error_blocks[];
extern const char *message_strs[];
extern const struct eblk error_blocks[];
#ifdef OldCode
struct {
......@@ -132,10 +136,9 @@ struct {
char e_string[36];
} ebuf = { 0 };
char textbuf[64] = { 0 };
char textbuf[64];
char msg_fd_eco[16] = { 0 };
char msg_fd_mns[16] = { 0 };
int msg_fd_mns[4];
#endif
#ifdef OldCode
......@@ -156,6 +159,7 @@ static void mns_showif(int argc, char **argv);
static void routed_traceoff(int argc, char **argv);
static void routed_traceon(int argc, char **argv);
static void routed_notrouting(int argc, char **argv);
static int atp_return_map_q(char *, int *);
#endif
struct client mns_cli_call[9] = {
......@@ -228,14 +232,11 @@ static struct swient mns_ent[MAXSWI+1] =
#ifdef OldCode
extern _kernel_oserror *mns_error(), *init_msgs(), *mns_evenable();
extern _kernel_oserror *calleverytick(), *init_econet(), *mns_claimv();
extern _kernel_oserror *mns_error(), *init_msgs();
extern _kernel_oserror *calleverytick(), *init_econet();
extern u_long htonl(), inet_makeaddr();
extern char *inet_ntoa(), *mns_str(), *strchr();
#else
static _kernel_oserror *mns_claimv(void);
static void mns_releasev(void);
static _kernel_oserror *mns_evenable(void);
static void read_ifs(int gateway, int print);
static void namtomodule(char *nm);
static void process_input(int sock);
......@@ -275,10 +276,7 @@ void *pw;
e = calleverytick(tick_entry);
if (e)
goto out;
e = init_msgs(MSG_FILE, msg_fd_eco);
if (e)
goto out;
e = init_msgs(MSG_FILE1, msg_fd_mns);
e = init_msgs(Module_MessagesFile, msg_fd_mns);
if (e)
goto out;
e = init_econet();
......@@ -287,18 +285,16 @@ void *pw;
do_mns_init(1);
routedsock = &(mns.mns_routedsock);
timerp = &(mns.mns_timer);
atexit(mns_final);
restarting = 1;
setcallback();
return ((_kernel_oserror *)0);
return NULL;
out:
mns_final();
return (e);
}
#else
/******************************************************************************/
_kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
_kernel_oserror *mns_init(const char *cmd_tail, int pbase, void *pw)
{
/*
* cmhg module initialisation entry
......@@ -337,27 +333,22 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
mns.mns_routedsock = -1;
/* Open message file for us */
e = init_msgs(MSG_FILE1, msg_fd_mns);
e = init_msgs(Module_MessagesFile, msg_fd_mns);
if (e)
return e;
/* Install on event vector */
e = mns_claimv();
e = _swix(OS_Claim, _INR(0,2), EventV, mns_event_entry, module_wsp);
if (e)
goto out3;
/* Enable Internet events */
e = mns_evenable();
e = _swix(OS_Byte, _INR(0,1), OsByte_EnableEvent, Event_Internet);
if (e)
goto out2;
/* Install ticker code */
e = calleverytick(tick_entry);
if (e)
goto out2;
/* Open message file for Econet */
e = init_msgs(MSG_FILE, msg_fd_eco);
if (e)
goto out1;
......@@ -369,15 +360,11 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
if (e)
econet_not_present = 1;
do_mns_init(1);
routedsock = &(mns.mns_routedsock);
timerp = &(mns.mns_timer);
/* Install code to tidy up on exit */
atexit(mns_final);
/* set flag and set a Callback, so that the service call to say that
* "Econet" has been reinitialised will be issued on a Callback after this
* initialisation has completed.
......@@ -386,12 +373,12 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
setcallback();
DEBUGP1("#module init successful\n\r");
return (_kernel_oserror *)0; /* return OK */
return NULL; /* return OK */
out1:
removetickerevent(tick_entry);
_swix(OS_Byte, _INR(0,1), OsByte_DisableEvent, Event_Internet);
out2:
mns_releasev();
_swix(OS_Release, _INR(0,2), EventV, mns_event_entry, module_wsp);
out3:
release_msgs(msg_fd_mns);
......@@ -505,127 +492,6 @@ int do_mns_init(int booting)
} /* do_mns_init() */
#endif
/******************************************************************************/
#ifdef OldCode
_kernel_oserror *
mns_claimv()
{
_kernel_swi_regs r;
r.r[0] = EventV;
r.r[1] = (int)mns_event_entry;
r.r[2] = (int)module_wsp;
return (_kernel_swi(OS_Claim, &r, &r));
}
#else
/******************************************************************************/
static _kernel_oserror *mns_claimv(void)
{
/*
* Install ourselves on the Event vector
*
* Parameters:
* None
*
* Returns:
* 0 : => success
* !0 : => error (pointer to standard RISC OS error block)
*/
_kernel_swi_regs r;
r.r[0] = EventV;
r.r[1] = (int)mns_event_entry;
r.r[2] = (int)module_wsp;
return (_kernel_swi(OS_Claim, &r, &r));
} /* mns_claimv() */
#endif
/******************************************************************************/
#ifdef OldCode
_kernel_oserror *
mns_evenable()
{
_kernel_swi_regs r;
r.r[0] = OsByte_EnableEvent;
r.r[1] = Event_Internet;
return (_kernel_swi(OS_Byte, &r, &r));
}
#else
/******************************************************************************/
static _kernel_oserror *mns_evenable(void)
{
/*
* Enable Internet events so that we can receive them
*
* Parameters:
* None
*
* Returns:
* 0 : => success
* !0 : => error (pointer to standard RISC OS error block)
*/
_kernel_swi_regs r;
r.r[0] = OsByte_EnableEvent;
r.r[1] = Event_Internet;
return (_kernel_swi(OS_Byte, &r, &r));
} /* mns_evenable() */
#endif
/******************************************************************************/
#ifdef OldCode
mns_releasev()
{
_kernel_swi_regs r;
r.r[0] = OsByte_DisableEvent;
r.r[1] = Event_Internet;
(void) _kernel_swi(OS_Byte, &r, &r);
r.r[0] = EventV;
r.r[1] = (int)mns_event_entry;
r.r[2] = (int)module_wsp;
(void) _kernel_swi(OS_Release, &r, &r);
}
#else
/******************************************************************************/
static void mns_releasev(void)
{
/* Disable Internet event and remove from event vector
*
* Parameters:
* None
*
* Returns:
* None
*/
_kernel_swi_regs r;
r.r[0] = OsByte_DisableEvent;
r.r[1] = Event_Internet;
(void) _kernel_swi(OS_Byte, &r, &r);
r.r[0] = EventV;
r.r[1] = (int)mns_event_entry;
r.r[2] = (int)module_wsp;
(void) _kernel_swi(OS_Release, &r, &r);
return;
} /* mns_releasev() */
#endif
/******************************************************************************/
......@@ -731,7 +597,7 @@ void *pw;
*argp++ = 0;
callp = &mns_cli_call[cmd_no];
(void)(*(callp->cli_call))(margc, margv);
return ((_kernel_oserror *)0);
return NULL;
}
#endif
......@@ -1144,12 +1010,12 @@ int error;
_kernel_oserror *e;
if (!error)
return ((_kernel_oserror *)0);
return NULL;
ebuf.e_nbr = error_blocks[error].err_nbr;
strcpy(ebuf.e_string, error_blocks[error].err_token);
memset ((char *)&r, 0, sizeof(r));
r.r[0] = (int)&ebuf;
r.r[1] = (error == Err_Fatal) ? (int)msg_fd_mns : (int)msg_fd_eco;
r.r[1] = (int)msg_fd_mns;
e = _kernel_swi(MessageTrans_ErrorLookup, &r, &r);
return (e ? e : (_kernel_oserror *)&ebuf);
}
......@@ -1161,8 +1027,9 @@ int strnbr;
_kernel_swi_regs r;
_kernel_oserror *e;
/* prevent unwanted parameter substitution */
memset ((char *)&r, 0, sizeof(r));
memset (textbuf, 0, sizeof(textbuf));
*textbuf = '\0';
r.r[0] = (int)msg_fd_mns;
r.r[1] = (int)message_strs[strnbr];
r.r[2] = (int)textbuf;
......@@ -1274,7 +1141,7 @@ int (*fun)();
e = _kernel_swi(OS_Claim, &r, &r);
if (e)
return (e);
return ((_kernel_oserror *)0);
return NULL;
}
removetickerevent(fun)
......@@ -1305,7 +1172,7 @@ void *pw;
return (1);
}
#else
int tick_handler(_kernel_swi_regs *r, void *pw)
_kernel_oserror *tick_handler(_kernel_swi_regs *r, void *pw)
{
/*
* cmhg ticker interrupt handler
......@@ -1313,10 +1180,6 @@ int tick_handler(_kernel_swi_regs *r, void *pw)
* Parameters:
* r : pointer to registers block
* pw : "R12" value established by module initialisation
*
* Returns:
* 0 => interrupt "claimed"
* !0 => interrupt not "claimed"
*/
UNUSED(r);
......@@ -1331,7 +1194,7 @@ int tick_handler(_kernel_swi_regs *r, void *pw)
check_rxcbs();
check_txcbs();
return 1;
return NULL;
} /* tick_handler() */
......@@ -1429,7 +1292,6 @@ mns_final()
{
traceoff(1);
mns_releasev();
release_msgs(msg_fd_eco);
release_msgs(msg_fd_mns);
free_sockets();
removetickerevent(tick_entry);
......@@ -1437,9 +1299,9 @@ mns_final()
#else
/******************************************************************************/
static void mns_final(void)
_kernel_oserror *mns_final(int fatal, int podule, void *pw)
{
/* Finalisation code registered with atexit()
/* Finalisation code
*
* Parameters:
* None
......@@ -1450,6 +1312,10 @@ static void mns_final(void)
DEBUGP1("#module finalisation\n\r");
UNUSED(fatal);
UNUSED(podule);
UNUSED(pw);
traceoff();
/* One could argue about the order of releasing the vectors and closing
......@@ -1457,11 +1323,8 @@ static void mns_final(void)
*/
/* Disable Internet event and remove from event vector */
mns_releasev();
/* Close MessageTrans message files */
release_msgs(msg_fd_eco);
release_msgs(msg_fd_mns);
_swix(OS_Byte, _INR(0,1), OsByte_DisableEvent, Event_Internet);
_swix(OS_Release, _INR(0,2), EventV, mns_event_entry, module_wsp);
/* Close sockets */
free_sockets();
......@@ -1472,7 +1335,10 @@ static void mns_final(void)
/* remove any added transient callback */
removecallback();
return;
/* Close MessageTrans message files */
release_msgs(msg_fd_mns);
return NULL;
} /* mns_final() */
......@@ -1485,13 +1351,6 @@ int sn;
_kernel_swi_regs *r;
{
switch (sn) {
case Service_MessageFileClosed:
if (r->r[0] == (int)msg_fd_eco)
(void) init_msgs(MSG_FILE, msg_fd_eco);
else if (r->r[0] == (int)msg_fd_mns)
(void) init_msgs(MSG_FILE1, msg_fd_mns);
return;
case Service_ProtocolDying:
if (r->r[2] == InternetID)
break;
......@@ -2142,10 +2001,7 @@ static int atp_add_newitem(struct atp_block *a)
#endif
int
atp_return_map_q(a, count)
u_char *a;
int *count;
static int atp_return_map_q(char *a, int *count)
{
struct address_q *q;
int n, r;
......@@ -2843,7 +2699,7 @@ int port, station, net;
return(mns_error(Err_BadStn));
if (net < 0 || net > 255)
return(mns_error(Err_BadNet));
return ((_kernel_oserror *)0);
return NULL;
#else
/******************************************************************************/
_kernel_oserror *range_check(int port, int station, int net)
......@@ -2857,7 +2713,7 @@ _kernel_oserror *range_check(int port, int station, int net)
if (net < 0 || net > 255)
return mns_error(Err_BadNet);
return (_kernel_oserror *)0;
return NULL;
} /* range_check() */
......
......@@ -111,9 +111,8 @@
#include "debug.h"
#include "text.h"
#include "swicode.h"
#include "NetIHdr.h" /* From CMHG */
static void mns_final(void);
extern int tick_entry();
extern char *inet_ntoa();
struct mns mns = { 0 };
......@@ -184,7 +183,7 @@ static void namtomodule(char *nm);
/******************************************************************************/
_kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
_kernel_oserror *mns_init(const char *cmd_tail, int pbase, void *pw)
{
/*
* cmhg module initialisation entry
......@@ -222,20 +221,15 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
mns.mns_atpsock = -1;
mns.mns_routedsock = -1;
/* Install ticker code */
e = calleverytick(tick_entry);
/* Open message file for us */
e = init_msgs(Module_MessagesFile, msg_fd_mns);
if (e)
return e;
/* Open message file for Econet */
e = init_msgs(MSG_FILE, msg_fd_eco);
if (e)
goto out;
/* Open message file for us */
e = init_msgs(MSG_FILE1, msg_fd_mns);
/* Install ticker code */
e = calleverytick(tick_entry);
if (e)
goto out;
goto out3;
/* check machine type we are running on for later machine type peek */
check_machine_type();
......@@ -247,9 +241,6 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
do_mns_init(1);
/* Install code to tidy up on exit */
atexit(mns_final);
/* set flag and set a Callback, so that the service call to say that
* "Econet" has been reinitialised will be issued on a Callback after this
* initialisation has completed.
......@@ -257,10 +248,10 @@ _kernel_oserror *mns_init(char *cmd_tail, int pbase, void *pw)
restarting = 1;
setcallback();
return (_kernel_oserror *)0; /* return OK */
return NULL; /* return OK */
out:
mns_final();
out3:
release_msgs(msg_fd_mns);
return e;
......@@ -572,9 +563,9 @@ int tick_handler(_kernel_swi_regs *r, void *pw)
/******************************************************************************/
static void mns_final(void)
_kernel_oserror *mns_final(int fatal, int podule, void *pw)
{
/* Finalisation code registered with atexit()
/* Finalisation code
*
* Parameters:
* None
......@@ -585,14 +576,14 @@ static void mns_final(void)
DEBUGP1("#module finalisation\n\r");
UNUSED(fatal);
UNUSED(podule);
UNUSED(pw);
/* One could argue about the order of releasing the vectors and closing
* the sockets, but this is the way it was.
*/
/* Close MessageTrans message files */
release_msgs(msg_fd_eco);
release_msgs(msg_fd_mns);
/* Close sockets */
free_sockets();
......@@ -602,7 +593,10 @@ static void mns_final(void)
/* remove any added transient callback */
removecallback();
return;
/* Close MessageTrans message files */
release_msgs(msg_fd_mns);
return NULL;
} /* mns_final() */
......@@ -814,8 +808,7 @@ void free_sockets(void)
/******************************************************************************/
static void mns_info(all)
int all;
static void mns_info(int all)
{
int i, found = 0;
......@@ -890,10 +883,7 @@ int ip_to_mns(u_long addr, int *net, int *station)
/******************************************************************************/
int
src_is_ok(rx, net, station)
struct rxcb *rx;
int net, station;
int src_is_ok(struct rxcb *rx, int net, int station)
{
if (rx->rx_station == ALL_ONES && rx->rx_network == ALL_ONES)
return (1);
......@@ -903,9 +893,7 @@ int net, station;
return (1);
}
u_long
mns_to_ip(net, station)
int net, station;
u_long mns_to_ip(int net, int station)
{
struct address_q *q;
......@@ -1038,15 +1026,13 @@ _kernel_oserror *range_check(int port, int station, int net)
if (station != ALL_ONES && (net < 0 || net > 255))
return mns_error(Err_BadNet);
return (_kernel_oserror *)0;
return NULL;
} /* range_check() */
/******************************************************************************/
int
is_wild(port, station, network)
int port, station, network;
int is_wild(int port, int station, int network)
{
if (station == ALL_ONES)
return (network == ALL_ONES ? 1 : 0);
......
......@@ -205,11 +205,7 @@ static void rtadd(struct sockaddr *dst, struct sockaddr *gate, int metric)
if (metric > 1)
rt->rt_flags |= RTF_GATEWAY;
route_attach(rt);
#ifdef OldCode
(void) socketioctl(mns.mns_routedsock, SIOCADDRT, (char *)&rt->rt_rt);
#else
(void) rtioctl(ADD, (struct rtuentry *) &rt->rt_rt);
#endif
return;
......@@ -226,13 +222,8 @@ static void rtchange(struct rt_entry *rt, struct sockaddr *gate, short metric)
{
oldroute = rt->rt_rt;
rt->rt_router = *gate;
#ifdef OldCode
(void) socketioctl(mns.mns_routedsock, SIOCADDRT, (char *)&rt->rt_rt);
(void) socketioctl(mns.mns_routedsock, SIOCDELRT, (char *)&oldroute);
#else
(void) rtioctl(ADD, (struct rtuentry *) &rt->rt_rt);
(void) rtioctl(DELETE, (struct rtuentry *) &oldroute);
#endif
}
return;
......
......@@ -79,61 +79,6 @@ static void p_tree(struct radix_node *rn);
void mns_showroutes(void)
{
#ifdef OldCode
struct rtentry *rt;
struct mbuf *m;
struct mbuf **routehash;
int rthashsize, i;
struct rttinfo rttab;
/* If we've received map info from a !Gateway, get it */
if ((mns.mns_flags & MNS_SEEKADDR) != 0 ||
socketioctl(mns.mns_rxdsock, SIOCGETRT, (caddr_t)&rttab) < 0)
return;
/* Get a buffer to hold pointers to mbufs holding routes to nets */
rthashsize = rttab.r_rthashsize;
routehash = (struct mbuf **)malloc(rthashsize * sizeof(struct mbuf *));
if (routehash == 0)
return;
/* take copy of table of pointers */
memcpy(routehash, rttab.r_rtnet, rthashsize * sizeof(struct mbuf *));
for (i = 0; i < rthashsize; i++)
{
/* ignore null pointers in table */
if (routehash[i] == 0)
continue;
m = routehash[i];
/* follow down chain of route entries */
while (m)
{
/* mbuf holds an rtentry */
rt = mtod(m, struct rtentry *);
/* print the name of the network */
printf("%-16s", sprintnet(&rt->rt_dst));
/* if a gateway print "gateway = " and address of gateway */
if (rt->rt_flags & RTF_GATEWAY)
printf("%s=%s\n", mns_str(Str_Gteway),sprintroute(&rt->rt_gateway));
else
/* print "local" to show this name is name of local network */
printf("%s\n", mns_str(Str_Local));
/* move on down chain */
m = m->m_next;
}
}
free(routehash);
return;
#else
#define kread(v, b, l) (memcpy((b), (void *)(v), (l)))
#define kget(p, d) (kread((u_long)(p), (char *)&(d), sizeof (d)))
struct nlist nl[] = { { "_rt_tables" }, "" };
......@@ -151,10 +96,8 @@ void mns_showroutes(void)
p_tree(head.rnh_treetop);
return;
#endif
} /* mns_showroutes() */
#ifndef OldCode
static void p_rtentry(struct rtentry *rt);
static struct rtentry rtentry;
......@@ -196,7 +139,6 @@ static void p_rtentry(struct rtentry *rt)
/* print "local" to show this name is name of local network */
printf("%s\n", mns_str(Str_Local));
}
#endif
/******************************************************************************/
......
......@@ -92,7 +92,7 @@ static int *swi_data = 0;
/******************************************************************************/
_kernel_oserror *init_msgs(char *filename, char *fd)
_kernel_oserror *init_msgs(const char *filename, int *fd)
{
/*
* Open MessageTrans message file
......@@ -109,11 +109,12 @@ _kernel_oserror *init_msgs(char *filename, char *fd)
_kernel_swi_regs r;
_kernel_oserror *e;
r.r[1] = (int)filename;
e = _kernel_swi(MessageTrans_FileInfo, &r, &r);
#ifndef ROM
r.r[0] = (int)Resources();
e = _kernel_swi(ResourceFS_RegisterFiles, &r, &r);
if (e)
return e;
#endif
r.r[0] = (int)fd;
r.r[1] = (int)filename;
......@@ -126,14 +127,17 @@ _kernel_oserror *init_msgs(char *filename, char *fd)
/******************************************************************************/
void release_msgs(char *fd)
void release_msgs(int *fd)
{
_kernel_swi_regs r;
r.r[0] = (int)fd;
(void) _kernel_swi(MessageTrans_CloseFile, &r, &r);
return;
#ifndef ROM
r.r[0] = (int)Resources();
(void) _kernel_swi(ResourceFS_DeregisterFiles, &r, &r);
#endif
} /* release_msgs() */
......@@ -190,7 +194,7 @@ _kernel_oserror *init_econet(void)
swi_code = module + (*(module + 8) / 4); /* pointer to SWI handler */
swi_data = (int *)(r.r[4]); /* contents of private word */
return ((_kernel_oserror *)0);
return NULL;
} /* init_econet() */
......@@ -293,7 +297,7 @@ _kernel_oserror *CreateReceive(_kernel_swi_regs *r)
r->r[0] = handle;
r->r[2] = network;
return ((_kernel_oserror *)0);
return NULL;
} /* CreateReceive() */
......@@ -381,7 +385,7 @@ examine:
if (optype == Econet_ReadReceive)
mns.mns_states[r->r[4]] |= ECONET_IS_CONNECTED;
}
return ((_kernel_oserror *)0);
return NULL;
}
if (optype == Econet_ReadReceive)
{
......@@ -556,7 +560,7 @@ out:
restore_irqs(oldstate);
r->r[0] = (rx == 0) ? 0 : rx->rx_handle;
return (_kernel_oserror *)0;
return NULL;
} /* EnumerateReceive() */
......@@ -840,7 +844,7 @@ _kernel_oserror *PollTransmit(_kernel_swi_regs *r)
r->r[0] = tx->tx_status;
return (_kernel_oserror *)0;
return NULL;
} /* PollTransmit() */
......@@ -890,7 +894,7 @@ _kernel_oserror *ReadLocalStationAndNet(_kernel_swi_regs *r)
r->r[1] = local_net();
DEBUGP3("#ReadLocalStationAndNet(): returning %d.%d\n\r",r->r[0], r->r[1]);
return (_kernel_oserror *)0;
return NULL;
} /* ReadLocalStationAndNet() */
......@@ -898,14 +902,14 @@ _kernel_oserror *ReadLocalStationAndNet(_kernel_swi_regs *r)
_kernel_oserror *ConvertStatusToString(_kernel_swi_regs *r)
{
return do_ConvertStatusToString(r, msg_fd_eco);
return do_ConvertStatusToString(r, msg_fd_mns);
}
/******************************************************************************/
_kernel_oserror *ConvertStatusToError(_kernel_swi_regs *r)
{
return do_ConvertStatusToError(r, msg_fd_eco);
return do_ConvertStatusToError(r, msg_fd_mns);
}
/******************************************************************************/
......@@ -929,7 +933,7 @@ _kernel_oserror *AbandonAndReadReceive(_kernel_swi_regs *r)
memcpy((char *)r, (char *)&rsav, sizeof(rsav));
return (_kernel_oserror *)0;
return NULL;
} /* AbandonAndReadReceive() */
......@@ -941,7 +945,7 @@ _kernel_oserror *ReadProtection(_kernel_swi_regs *r)
return(call_econet(Econet_ReadProtection, r));
r->r[0] = 0577;
return (_kernel_oserror *)0;
return NULL;
} /* ReadProtection() */
......@@ -959,7 +963,7 @@ _kernel_oserror *SetProtection(_kernel_swi_regs *r)
r->r[0] = 0577;
return (_kernel_oserror *)0;
return NULL;
} /* SetProtection() */
......@@ -967,7 +971,7 @@ _kernel_oserror *SetProtection(_kernel_swi_regs *r)
_kernel_oserror *ReadStationNumber(_kernel_swi_regs *r)
{
return do_ReadStationNumber(r, msg_fd_eco);
return do_ReadStationNumber(r, msg_fd_mns);
}
/******************************************************************************/
......@@ -978,7 +982,7 @@ _kernel_oserror *PrintBanner(_kernel_swi_regs *r)
printf("%s\n", mns_str(Str_MNSBan));
return (_kernel_oserror *)0;
return NULL;
} /* PrintBanner() */
......@@ -993,7 +997,7 @@ _kernel_oserror *ReleasePort(_kernel_swi_regs *r)
mns.mns_states[i] &= ~PORTCLAIMED;
return (_kernel_oserror *)0;
return NULL;
} /* ReleasePort() */
......@@ -1014,7 +1018,7 @@ _kernel_oserror *AllocatePort(_kernel_swi_regs *r)
if (++i == MAX_ALLOCATE)
i = 1;
mns.mns_nextport = i;
return (_kernel_oserror *)0;
return NULL;
}
if (++i == 255)
i = 1;
......@@ -1037,7 +1041,7 @@ _kernel_oserror *DeAllocatePort(_kernel_swi_regs *r)
mns.mns_states[i] &= ~PORTALLOCATED;
return (_kernel_oserror *)0;
return NULL;
} /* DeAllocatePort() */
......@@ -1055,7 +1059,7 @@ _kernel_oserror *ClaimPort(_kernel_swi_regs *r)
mns.mns_states[i] |= PORTCLAIMED;
return (_kernel_oserror *)0;
return NULL;
} /* ClaimPort() */
......@@ -1096,7 +1100,7 @@ _kernel_oserror *ReadTransportType(_kernel_swi_regs *r)
r->r[2] = (a == 0) ? econet_transport_type : 1;
out:
return (_kernel_oserror *)0;
return NULL;
} /* ReadTransportType() */
......@@ -1122,7 +1126,7 @@ _kernel_oserror *Version(_kernel_swi_regs *r)
return call_econet(Econet_Version, r);
r->r[2] = Module_Version;
return (_kernel_oserror *)0;
return NULL;
} /* Version() */
......@@ -1146,7 +1150,7 @@ _kernel_oserror *NetworkState(_kernel_swi_regs *r)
r->r[2] = 0;
return (_kernel_oserror *)0;
return NULL;
} /* NetworkState() */
......@@ -1170,7 +1174,7 @@ _kernel_oserror *PacketSize(_kernel_swi_regs *r)
r->r[2] = mns.mns_segsize;
return (_kernel_oserror *)0;
return NULL;
} /* PacketSize() */
......@@ -1194,7 +1198,7 @@ _kernel_oserror *ReadTransportName(_kernel_swi_regs *r)
r->r[2] = (int)"Network";
return (_kernel_oserror *)0;
return NULL;
} /* ReadTransportName() */
......@@ -1209,7 +1213,7 @@ _kernel_oserror *InetRxDirect(_kernel_swi_regs *r)
r->r[6]);
restore_irqs(oldstate);
return (_kernel_oserror *)0;
return NULL;
} /* InetRxDirect() */
......@@ -1234,7 +1238,7 @@ _kernel_oserror *EnumerateMap(_kernel_swi_regs *r)
r->r[4] = (int)q;
}
return (_kernel_oserror *)0;
return NULL;
} /* EnumerateMap() */
......@@ -1261,7 +1265,7 @@ _kernel_oserror *EnumerateTransmit(_kernel_swi_regs *r)
r->r[0] = (tx == 0) ? 0 : tx->tx_handle;
return (_kernel_oserror *)0;
return NULL;
}
/******************************************************************************/
......
......@@ -13,46 +13,21 @@
* limitations under the License.
*/
/* text.c
*
* Author: Keith Ruttle (Acorn)
*
* Description
* ===========
* Message definitions
*
* Environment
* ===========
* Acorn RISC OS 3.11 or later.
*
* Compiler
* ========
* Acorn Archimedes C release 5.02 or later.
*
* Change record
* =============
*
* JPD Jem Davies (Cambridge Systems Design)
*
*
* 09-Dec-94 17:45 JPD Version 1.00
* First version with change record. Modified: #includes to be ANSI-compliant.
*
* 11-Jan-95 16:37 JPD Version 1.01
* Enabled compilation with -fah option.
*
* 17-Feb-95 10:13 JPD Version 1.02
* Removed old code, tidied.
*
**End of change record*
*/
#include "Global/NewErrors.h"
#include "sys/types.h"
#include "module.h"
#include "text.h"
char *message_strs[37] =
const char *message_strs[37] =
{
"StaAcc",
"NotAcc",
......@@ -93,23 +68,23 @@ char *message_strs[37] =
"GtwSta",
};
struct eblk error_blocks[15] =
const struct eblk error_blocks[15] =
{
{ 0, 0 },
{ 0x309, "BadPort" },
{ 0x30c, "TooBig" },
{ 0x316, "PtNtAlc" },
{ 0x317, "PortAlc" },
{ 0x318, "NoPorts" },
{ 0x31a, "NoStore" },
{ 0x111, "BadSWI" },
{ 0x30d, "BadMask" },
{ 0x311, "NoHware" },
{ 0x319, "BadInt" },
{ 0x306, "BadStn" },
{ 0x307, "BadNet" },
{ 0xde, "Channel" },
{ 0x00, "NotConf" },
{ 0, 0 },
{ ErrorNumber_BadPort, "BadPort" },
{ ErrorNumber_BadSize, "TooBig" },
{ ErrorNumber_PortNotAllocated, "PtNtAlc" },
{ ErrorNumber_PortAllocated, "PortAlc" },
{ ErrorNumber_NoMorePorts, "NoPorts" },
{ ErrorNumber_EconetInternalError, "NoStore" }, /* Global messages */
{ ErrorNumber_ModuleBadSWI, "BadSWI" }, /* Global messages */
{ ErrorNumber_BadMask, "BadMask" },
{ ErrorNumber_NoHardware, "NoHware" },
{ ErrorNumber_NoNetworkAccess, "BadInt" }, /* See above table */
{ ErrorNumber_BadStation, "BadStn" }, /* Global messages */
{ ErrorNumber_BadNetwork, "BadNet" }, /* Global messages */
{ ErrorNumber_Channel, "Channel" }, /* Global messages */
{ ErrorNumber_AUNNotConfigured, "NotConf" },
};
/******************************************************************************/
......
......@@ -26,9 +26,13 @@ date-string: Module_Date_CMHG
initialisation-code: mns_init
; Post-reset, EconetDying, MessageFileClosed, DCIDriverStatus, DCIProtocolStatus
finalisation-code: mns_final
international-help-file: "Resources:$.Resources.Net.Messages"
; Post-reset, EconetDying, ResourceFSStarting, DCIDriverStatus, DCIProtocolStatus
;
service-call-handler: mns_sc_handler &27 &56 &5E &9D &9F
service-call-handler: mns_sc_handler &27 &56 &60 &9D &9F
command-keyword-table: mns_cli_handler
#ifdef NO_INTERNATIONAL_HELP
......@@ -82,5 +86,5 @@ swi-decoding-table: Econet,
HardwareAddresses, NetworkParameters
irq-handlers: tick_entry/tick_handler,
generic-veneers: tick_entry/tick_handler,
callb_entry/callb_handler
......@@ -24,9 +24,13 @@ help-string: NetG Module_MajorVersion_CMHG Module_MinorVersion_CMHG G
initialisation-code: mns_init
; Post-reset, EconetDying, MessageFileClosed, DCIDriverStatus, DCIProtocolStatus
finalisation-code: mns_final
international-help-file: "Resources:$.Resources.Net.Messages"
; Post-reset, EconetDying, ResourceFSStarting, DCIDriverStatus, DCIProtocolStatus
;
service-call-handler: mns_sc_handler &27 &56 &5E &9D &9F
service-call-handler: mns_sc_handler &27 &56 &60 &9D &9F
command-keyword-table: mns_cli_handler
AddMap(min-args:1, max-args:5,
......@@ -74,5 +78,5 @@ swi-decoding-table: Econet,
event-handler: mns_event_entry/mns_event_handler 19
irq-handlers: tick_entry/tick_handler,
generic-veneers: tick_entry/tick_handler,
callb_entry/callb_handler
......@@ -26,9 +26,13 @@ date-string: Module_Date_CMHG
initialisation-code: mns_init
; Post-reset, EconetDying, MessageFileClosed, DCIDriverStatus, DCIProtocolStatus
finalisation-code: mns_final
international-help-file: "Resources:$.Resources.Net.Messages"
; Post-reset, EconetDying, ResourceFSStarting, DCIDriverStatus, DCIProtocolStatus
;
service-call-handler: mns_sc_handler &27 &56 &5E &9D &9F
service-call-handler: mns_sc_handler &27 &56 &60 &9D &9F
command-keyword-table: mns_cli_handler
#ifdef NO_INTERNATIONAL_HELP
......@@ -83,5 +87,5 @@ swi-decoding-table: Econet,
event-handler: mns_event_entry/mns_event_handler 19
irq-handlers: tick_entry/tick_handler,
generic-veneers: tick_entry/tick_handler,
callb_entry/callb_handler
......@@ -26,9 +26,13 @@ date-string: Module_Date_CMHG
initialisation-code: mns_init
; Post-reset, EconetDying, MessageFileClosed, DCIDriverStatus, DCIProtocolStatus
finalisation-code: mns_final
international-help-file: "Resources:$.Resources.Net.Messages"
; Post-reset, EconetDying, ResourceFSStarting, DCIDriverStatus, DCIProtocolStatus
;
service-call-handler: mns_sc_handler &27 &56 &5E &9D &9F
service-call-handler: mns_sc_handler &27 &56 &60 &9D &9F
command-keyword-table: mns_cli_handler
#ifdef NO_INTERNATIONAL_HELP
......
......@@ -48,6 +48,8 @@
#else
#include <string.h>
#include "sys/types.h"
#include "sys/socket.h"
#include "net/if.h"
......
......@@ -55,6 +55,7 @@ int startup_count = 0;
#else
#include <stdlib.h>
#include <string.h>
#include "sys/types.h"
#include "sys/time.h"
......@@ -64,6 +65,8 @@ int startup_count = 0;
#include "net/if.h"
#include "net/route.h"
#include "protocols/routed.h"
#include "socklib.h"
#include "unixlib.h"
#include "mnsg.h"
#include "module.h"
......