From e2ca70a41787ba0e1d53952fdb995b274a3a949d Mon Sep 17 00:00:00 2001 From: Michael Weiser Date: Sat, 1 Nov 2003 14:20:12 +0000 Subject: [PATCH] merge forward changes from release-2-90xx --- common/base64.cpp | 2 +- common/base64.h | 2 +- common/baseincs.h | 11 +- common/bench.cpp | 2 +- common/bench.h | 2 +- common/buffbase.cpp | 2 +- common/buffbase.h | 2 +- common/buffpub.cpp | 2 +- common/buffupd.h | 2 +- common/ccoreio.h | 2 +- common/checkpt.cpp | 2 +- common/checkpt.h | 2 +- common/clicdata.cpp | 2 +- common/clicdata.h | 2 +- common/client.cpp | 2 +- common/client.h | 2 +- common/clievent.cpp | 2 +- common/clievent.h | 2 +- common/cliident.h | 2 +- common/clirun.cpp | 4 +- common/clisync.h | 2 +- common/clitime.cpp | 10 +- common/clitime.h | 2 +- common/cmdline.cpp | 2 +- common/cmdline.h | 2 +- common/confmenu.cpp | 2 +- common/confmenu.h | 2 +- common/confopt.cpp | 3 +- common/confopt.h | 2 +- common/confrwv.cpp | 2 +- common/confrwv.h | 2 +- common/console.cpp | 9 +- common/console.h | 2 +- common/convdes.cpp | 2 +- common/convdes.h | 2 +- common/coremem.cpp | 2 +- common/coremem.h | 2 +- common/cpucheck.cpp | 246 ++--- common/cpucheck.h | 18 +- common/cputypes.h | 4 +- common/disphelp.cpp | 2 +- common/disphelp.h | 2 +- common/iniread.cpp | 4 +- common/logstuff.cpp | 8 +- common/logstuff.h | 2 +- common/lurk.cpp | 39 +- common/lurk.h | 2 +- common/mail.cpp | 2 +- common/mail.h | 2 +- common/memfile.cpp | 5 +- common/memfile.h | 2 +- common/modereq.cpp | 2 +- common/modereq.h | 2 +- common/netbase.cpp | 44 +- common/netbase.h | 2 +- common/netconn.cpp | 2 +- common/netconn.h | 2 +- common/netres.h | 2 +- common/pathwork.cpp | 2 +- common/pathwork.h | 2 +- common/pollsys.cpp | 2 +- common/pollsys.h | 2 +- common/probfill.cpp | 2 +- common/probfill.h | 2 +- common/problem.cpp | 2 +- common/problem.h | 2 +- common/probman.cpp | 2 +- common/probman.h | 2 +- common/projdata.cpp | 2 +- common/projdata.h | 2 +- common/random.cpp | 2 +- common/random.h | 2 +- common/rsadata.h | 2 +- common/selcore.cpp | 2 +- common/selcore.h | 2 +- common/selftest.cpp | 2 +- common/selftest.h | 2 +- common/setprio.cpp | 2 +- common/setprio.h | 2 +- common/sleepdef.h | 2 +- common/testplat.cpp | 2 +- common/threadcd.cpp | 2 +- common/threadcd.h | 2 +- common/triggers.cpp | 4 +- common/triggers.h | 2 +- common/util.cpp | 2 +- common/version.h | 2 +- configure | 89 +- docs/CHANGES.txt | 4 +- docs/readme.amiga | 2 +- docs/readme.riscos | 57 +- docs/readme.vms | 121 ++- docs/readme.w32 | 2 +- go-vms.com | 196 ++-- make-vms.com | 270 +++--- makefile.bcc | 2 +- makefile.vc | 2 +- makefile.wat | 25 +- ogr/alpha/ev67.cpp | 2 +- ogr/ansi/ogr.cpp | 2 +- ogr/ansi/ogr.h | 2 +- ogr/ansi/ogr_dat.cpp | 2 +- ogr/ansi/ogr_sup.cpp | 2 +- ogr/ppc/ogr-ppc.cpp | 2 +- ogr/ppc/ogr-vec.cpp | 2 +- ogr/x86/ogr-a.cpp | 2 +- ogr/x86/ogr-b.cpp | 2 +- ogr2/ansi/ogr_fb.mac | 5 +- ogr2/ansi/ogr_sup.cpp | 2 +- plat/amd64/x86ident.asm | 81 ++ plat/amigaos/amGUI.c | 2 +- plat/amigaos/amSupport.c | 2 +- plat/amigaos/guilib/main.c | 2 +- plat/linux/li_inst.c | 2 +- plat/linux/resolv.c | 2 +- plat/macos/resources/version.r | 2 +- plat/netware/misc/nwpre3x.c | 2 +- plat/os2/os2inst.cpp | 12 +- .../!System/310/Modules/FPEmulator,ffa | Bin 0 -> 30564 bytes plat/riscos/riscos_asm.h | 3 +- plat/riscos/riscos_asm_gccsdk.s | 99 +- plat/riscos/riscos_sup.cpp | 74 +- plat/riscos/riscos_sup.h | 3 +- plat/riscos/riscos_x86.cpp | 2 +- plat/win/w32cons.cpp | 2 +- plat/win/w32cons.rc | 8 +- plat/win/w32snapp.c | 2 +- plat/win/w32ss.cpp | 2 +- plat/win/w32svc.cpp | 2 +- plat/x86/x86ident.S | 2 +- plat/x86/x86ident.asm | 2 +- rc5-72/amd64/r72-snjl.asm | 697 ++++++++++++++ rc5-72/ansi/r72ansi1.cpp | 2 +- rc5-72/ansi/r72ansi2.cpp | 2 +- rc5-72/ansi/r72ansi4.cpp | 2 +- rc5-72/ansi/rotate.h | 2 +- rc5-72/gentests72.cpp | 2 +- rc5-72/x86/r72-dg2.asm | 2 +- rc5-72/x86/r72-dg3.asm | 2 +- rc5-72/x86/r72-dg3a.asm | 2 +- rc5-72/x86/r72-dgp4.asm | 2 +- rc5-72/x86/r72-ma4.asm | 851 ++++++++++++++++++ rc5-72/x86/r72-ses2.asm | 2 +- rc5/ansi/2-rg.c | 2 +- rc5/ansi/rc5ansi_1-b2.cpp | 2 +- rc5/ansi/rc5ansi_1-rg.cpp | 2 +- rc5/ansi/rc5ansi_1-rg2.cpp | 2 +- rc5/ansi/rc5ansi_2-b2.cpp | 2 +- rc5/ansi/rc5ansi_2-bo1.cpp | 2 +- rc5/ansi/rc5ansi_2-rg.cpp | 2 +- rc5/ansi/rc5ansi_4-rg.cpp | 2 +- rc5/ansi/rotate.h | 5 +- 152 files changed, 2523 insertions(+), 724 deletions(-) create mode 100644 plat/amd64/x86ident.asm create mode 100644 plat/riscos/package/!System/310/Modules/FPEmulator,ffa create mode 100644 rc5-72/amd64/r72-snjl.asm create mode 100644 rc5-72/x86/r72-ma4.asm diff --git a/common/base64.cpp b/common/base64.cpp index 5d991c1d3..d027f9b94 100644 --- a/common/base64.cpp +++ b/common/base64.cpp @@ -10,7 +10,7 @@ * */ const char *base64_cpp(void) { -return "@(#)$Id: base64.cpp,v 1.10 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: base64.cpp,v 1.11 2003/11/01 14:20:12 mweiser Exp $"; } static const unsigned char base64table[64] = { diff --git a/common/base64.h b/common/base64.h index 8af9370aa..1ddf8dd22 100644 --- a/common/base64.h +++ b/common/base64.h @@ -6,7 +6,7 @@ */ #ifndef __BASE64_H__ -#define __BASE64_H__ "@(#)$Id: base64.h,v 1.8 2003/09/12 22:29:25 mweiser Exp $" +#define __BASE64_H__ "@(#)$Id: base64.h,v 1.9 2003/11/01 14:20:12 mweiser Exp $" /* On success, both functions return the number of bytes in the outbuf (not diff --git a/common/baseincs.h b/common/baseincs.h index 476536cbf..255341e5a 100644 --- a/common/baseincs.h +++ b/common/baseincs.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __BASEINCS_H__ -#define __BASEINCS_H__ "@(#)$Id: baseincs.h,v 1.87 2003/09/12 22:29:25 mweiser Exp $" +#define __BASEINCS_H__ "@(#)$Id: baseincs.h,v 1.88 2003/11/01 14:20:12 mweiser Exp $" #include "cputypes.h" @@ -92,12 +92,9 @@ #elif (CLIENT_OS == OS_VMS) #include #include - #define unlink remove - #ifdef __VMS_UCX__ - #include //ntohl/htonl/ntohs/htons - #elif defined(MULTINET) - #include "multinet_root:[multinet.include.netinet]in.h" - #endif + #include + #include + #include #elif (CLIENT_OS == OS_SCO) #include #include diff --git a/common/bench.cpp b/common/bench.cpp index 32749614d..32509316b 100644 --- a/common/bench.cpp +++ b/common/bench.cpp @@ -4,7 +4,7 @@ * Any other distribution or use of this source violates copyright. */ const char *bench_cpp(void) { -return "@(#)$Id: bench.cpp,v 1.57 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: bench.cpp,v 1.58 2003/11/01 14:20:12 mweiser Exp $"; } //#define TRACE diff --git a/common/bench.h b/common/bench.h index a3063aec4..e67aa87a2 100644 --- a/common/bench.h +++ b/common/bench.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __BENCH_H__ -#define __BENCH_H__ "@(#)$Id: bench.h,v 1.13 2003/09/12 22:29:25 mweiser Exp $" +#define __BENCH_H__ "@(#)$Id: bench.h,v 1.14 2003/11/01 14:20:12 mweiser Exp $" /* returns "rate", or -1 if core error/^C, or 0 if not supported */ long TBenchmark( unsigned int contestid, unsigned int numsecs, int flags ); diff --git a/common/buffbase.cpp b/common/buffbase.cpp index c31381e03..98dc3618c 100644 --- a/common/buffbase.cpp +++ b/common/buffbase.cpp @@ -6,7 +6,7 @@ * Created by Cyrus Patel */ const char *buffbase_cpp(void) { -return "@(#)$Id: buffbase.cpp,v 1.37 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: buffbase.cpp,v 1.38 2003/11/01 14:20:12 mweiser Exp $"; } //#define TRACE //#define PROFILE_DISK_HITS diff --git a/common/buffbase.h b/common/buffbase.h index ab93ebd71..e0edcc1a9 100644 --- a/common/buffbase.h +++ b/common/buffbase.h @@ -10,7 +10,7 @@ * ------------------------------------------------------------------ */ #ifndef __BUFFBASE_H__ -#define __BUFFBASE_H__ "@(#)$Id: buffbase.h,v 1.6 2003/09/12 22:29:25 mweiser Exp $" +#define __BUFFBASE_H__ "@(#)$Id: buffbase.h,v 1.7 2003/11/01 14:20:12 mweiser Exp $" //efficiency hints/open mode modifiers #define BUFFER_FLAGS_NONE (0x00) //regular local buffer diff --git a/common/buffpub.cpp b/common/buffpub.cpp index 89fd548b3..9d98002d3 100644 --- a/common/buffpub.cpp +++ b/common/buffpub.cpp @@ -9,7 +9,7 @@ */ const char *buffpub_cpp(void) { -return "@(#)$Id: buffpub.cpp,v 1.7 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: buffpub.cpp,v 1.8 2003/11/01 14:20:12 mweiser Exp $"; } #include "cputypes.h" #include "client.h" //client class diff --git a/common/buffupd.h b/common/buffupd.h index c9321b652..1305b1b35 100644 --- a/common/buffupd.h +++ b/common/buffupd.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __BUFFUPD_H__ -#define __BUFFUPD_H__ "@(#)$Id: buffupd.h,v 1.13 2003/09/12 22:29:25 mweiser Exp $" +#define __BUFFUPD_H__ "@(#)$Id: buffupd.h,v 1.14 2003/11/01 14:20:12 mweiser Exp $" // pass flags ORd with BUFFERUPDATE_FETCH/*_FLUSH. // if interactive, prints "Input buffer full. No fetch required" etc. diff --git a/common/ccoreio.h b/common/ccoreio.h index 20b87d393..3039f7717 100644 --- a/common/ccoreio.h +++ b/common/ccoreio.h @@ -21,7 +21,7 @@ * of the problem object (ie created when the object is new'd) */ #ifndef __CCOREIO_H__ -#define __CCOREIO_H__ "@(#)$Id: ccoreio.h,v 1.14 2003/09/12 22:29:25 mweiser Exp $" +#define __CCOREIO_H__ "@(#)$Id: ccoreio.h,v 1.15 2003/11/01 14:20:12 mweiser Exp $" #include "cputypes.h" /* u32 etc. used here and in the cores */ diff --git a/common/checkpt.cpp b/common/checkpt.cpp index ad23a6098..29bb1c808 100644 --- a/common/checkpt.cpp +++ b/common/checkpt.cpp @@ -14,7 +14,7 @@ * ----------------------------------------------------------------- */ const char *checkpt_cpp(void) { -return "@(#)$Id: checkpt.cpp,v 1.22 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: checkpt.cpp,v 1.23 2003/11/01 14:20:12 mweiser Exp $"; } #include "client.h" // FileHeader, Client class #include "baseincs.h" // memset(), strlen() diff --git a/common/checkpt.h b/common/checkpt.h index b3f164290..6e4335b3b 100644 --- a/common/checkpt.h +++ b/common/checkpt.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __CHECKPT_H__ -#define __CHECKPT_H__ "@(#)$Id: checkpt.h,v 1.9 2003/09/12 22:29:25 mweiser Exp $" +#define __CHECKPT_H__ "@(#)$Id: checkpt.h,v 1.10 2003/11/01 14:20:12 mweiser Exp $" /* action flags */ #define CHECKPOINT_REFRESH 0x00 /* save current to checkpoint */ diff --git a/common/clicdata.cpp b/common/clicdata.cpp index 51715332c..1a150a77f 100644 --- a/common/clicdata.cpp +++ b/common/clicdata.cpp @@ -12,7 +12,7 @@ * ---------------------------------------------------------------------- */ const char *clicdata_cpp(void) { -return "@(#)$Id: clicdata.cpp,v 1.36 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: clicdata.cpp,v 1.37 2003/11/01 14:20:12 mweiser Exp $"; } //#define TRACE diff --git a/common/clicdata.h b/common/clicdata.h index 218b06255..055e54406 100644 --- a/common/clicdata.h +++ b/common/clicdata.h @@ -13,7 +13,7 @@ * ---------------------------------------------------------------------- */ #ifndef __CLICDATA_H__ -#define __CLICDATA_H__ "@(#)$Id: clicdata.h,v 1.26 2003/09/12 22:29:25 mweiser Exp $" +#define __CLICDATA_H__ "@(#)$Id: clicdata.h,v 1.27 2003/11/01 14:20:12 mweiser Exp $" // return 0 if contestID is invalid, non-zero if valid. int CliIsContestIDValid(int contestID); diff --git a/common/client.cpp b/common/client.cpp index bb8c05b31..fb61fabab 100644 --- a/common/client.cpp +++ b/common/client.cpp @@ -4,7 +4,7 @@ * Any other distribution or use of this source violates copyright. */ const char *client_cpp(void) { -return "@(#)$Id: client.cpp,v 1.252 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: client.cpp,v 1.253 2003/11/01 14:20:13 mweiser Exp $"; } /* ------------------------------------------------------------------------ */ diff --git a/common/client.h b/common/client.h index 85108da98..a7ea5b1ac 100644 --- a/common/client.h +++ b/common/client.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __CLIENT_H__ -#define __CLIENT_H__ "@(#)$Id: client.h,v 1.150 2003/09/12 22:29:25 mweiser Exp $" +#define __CLIENT_H__ "@(#)$Id: client.h,v 1.151 2003/11/01 14:20:13 mweiser Exp $" #include "projdata.h" /* PROJECT_COUNT */ #include "problem.h" /* WorkRecord, CONTEST_COUNT */ diff --git a/common/clievent.cpp b/common/clievent.cpp index c613a3c07..f1630e40a 100644 --- a/common/clievent.cpp +++ b/common/clievent.cpp @@ -31,7 +31,7 @@ * ---------------------------------------------------------------------- */ const char *clievent_cpp(void) { -return "@(#)$Id: clievent.cpp,v 1.12 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: clievent.cpp,v 1.13 2003/11/01 14:20:13 mweiser Exp $"; } #include "baseincs.h" /* NULL, memset */ #include "clievent.h" /* keep prototypes in sync */ diff --git a/common/clievent.h b/common/clievent.h index 430c0e75d..081e7c8d1 100644 --- a/common/clievent.h +++ b/common/clievent.h @@ -9,7 +9,7 @@ */ #ifndef __CLIEVENT_H__ -#define __CLIEVENT_H__ "@(#)$Id: clievent.h,v 1.14 2003/09/12 22:29:25 mweiser Exp $" +#define __CLIEVENT_H__ "@(#)$Id: clievent.h,v 1.15 2003/11/01 14:20:13 mweiser Exp $" /* parm is ptr to... */ #define CLIEVENT_CLIENT_STARTED 0x0001 /* ...client */ diff --git a/common/cliident.h b/common/cliident.h index 6153153e7..6f56f7362 100644 --- a/common/cliident.h +++ b/common/cliident.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __CLIIDENT_H__ -#define __CLIIDENT_H__ "@(#)$Id: cliident.h,v 1.11 2003/09/12 22:29:25 mweiser Exp $" +#define __CLIIDENT_H__ "@(#)$Id: cliident.h,v 1.12 2003/11/01 14:20:13 mweiser Exp $" extern void CliIdentifyModules(void); extern time_t CliGetNewestModuleTime(void); diff --git a/common/clirun.cpp b/common/clirun.cpp index e5905a672..7e6f27158 100644 --- a/common/clirun.cpp +++ b/common/clirun.cpp @@ -10,7 +10,7 @@ //#define DYN_TIMESLICE_SHOWME const char *clirun_cpp(void) { -return "@(#)$Id: clirun.cpp,v 1.130 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: clirun.cpp,v 1.131 2003/11/01 14:20:13 mweiser Exp $"; } #include "cputypes.h" // CLIENT_OS, CLIENT_CPU #include "baseincs.h" // basic (even if port-specific) #includes @@ -271,6 +271,8 @@ static int __cruncher_yield__(struct thread_param_block *thrparams) NonPolledUSleep( 0 ); /* yield */ #elif (CLIENT_OS == OS_SCO) NonPolledUSleep( 0 ); /* yield */ + #elif (CLIENT_OS == OS_VMS) + NonPolledUSleep( 0 ); /* yield */ #else #error where is your yield function? NonPolledUSleep( 0 ); /* yield */ diff --git a/common/clisync.h b/common/clisync.h index 83a7aeb11..d1143b54b 100644 --- a/common/clisync.h +++ b/common/clisync.h @@ -62,7 +62,7 @@ */ #ifndef __CLISYNC_H__ -#define __CLISYNC_H__ "@(#)$Id: clisync.h,v 1.4 2003/09/17 00:17:53 bdragon Exp $" +#define __CLISYNC_H__ "@(#)$Id: clisync.h,v 1.5 2003/11/01 14:20:13 mweiser Exp $" #include "cputypes.h" /* thread defines */ #include "sleepdef.h" /* NonPolledUSleep() */ diff --git a/common/clitime.cpp b/common/clitime.cpp index 91db24677..45c9220dd 100644 --- a/common/clitime.cpp +++ b/common/clitime.cpp @@ -14,7 +14,7 @@ * ---------------------------------------------------------------------- */ const char *clitime_cpp(void) { -return "@(#)$Id: clitime.cpp,v 1.57 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: clitime.cpp,v 1.58 2003/11/01 14:20:13 mweiser Exp $"; } #include "cputypes.h" #include "baseincs.h" /* for timeval, time, clock, sprintf, gettimeofday */ @@ -696,6 +696,14 @@ int CliGetMonotonicClock( struct timeval *tv ) tv->tv_sec = ts.tv_sec; tv->tv_usec = ts.tv_nsec / 1000; } + #elif (CLIENT_OS == OS_VMS) + { + struct timespec ts; /* OpenVMS only supports */ + if (getclock(TIMEOFDAY, &ts)) /* TIMEOFDAY for getclock, */ + return -1; /* which is the number of */ + tv->tv_sec = ts.tv_sec; /* seconds since 00:00:00 */ + tv->tv_usec = ts.tv_nsec / 1000; /* UTC on 1-Jan-1970. */ + } #elif 0 { /* ***** this code is not thread-safe! ****** diff --git a/common/clitime.h b/common/clitime.h index 4b9e5ff9d..af6d0bce3 100644 --- a/common/clitime.h +++ b/common/clitime.h @@ -10,7 +10,7 @@ * ---------------------------------------------------------------------- */ #ifndef __CLITIME_H__ -#define __CLITIME_H__ "@(#)$Id: clitime.h,v 1.28 2003/09/12 22:29:25 mweiser Exp $" +#define __CLITIME_H__ "@(#)$Id: clitime.h,v 1.29 2003/11/01 14:20:13 mweiser Exp $" #include "baseincs.h" /* struct timeval */ diff --git a/common/cmdline.cpp b/common/cmdline.cpp index b64af6d4f..4b932722c 100644 --- a/common/cmdline.cpp +++ b/common/cmdline.cpp @@ -15,7 +15,7 @@ * ------------------------------------------------------------------- */ const char *cmdline_cpp(void) { -return "@(#)$Id: cmdline.cpp,v 1.161 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: cmdline.cpp,v 1.162 2003/11/01 14:20:13 mweiser Exp $"; } //#define TRACE diff --git a/common/cmdline.h b/common/cmdline.h index 90fd9c869..70fafa901 100644 --- a/common/cmdline.h +++ b/common/cmdline.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __CMDLINE_H__ -#define __CMDLINE_H__ "@(#)$Id: cmdline.h,v 1.8 2003/09/12 22:29:25 mweiser Exp $" +#define __CMDLINE_H__ "@(#)$Id: cmdline.h,v 1.9 2003/11/01 14:20:13 mweiser Exp $" // runlevel=0 = parse cmdline, >0==exec modes && print messages // returns !0 if app should be terminated; (retcodeP then has exit code) diff --git a/common/confmenu.cpp b/common/confmenu.cpp index bcfae00fe..ba6ee0dc0 100644 --- a/common/confmenu.cpp +++ b/common/confmenu.cpp @@ -9,7 +9,7 @@ * --------------------------------------------------------------------- */ const char *confmenu_cpp(void) { -return "@(#)$Id: confmenu.cpp,v 1.63 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: confmenu.cpp,v 1.64 2003/11/01 14:20:13 mweiser Exp $"; } /* ----------------------------------------------------------------------- */ diff --git a/common/confmenu.h b/common/confmenu.h index c644682af..056ddee15 100644 --- a/common/confmenu.h +++ b/common/confmenu.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __CONFMENU_H__ -#define __CONFMENU_H__ "@(#)$Id: confmenu.h,v 1.6 2003/09/12 22:29:25 mweiser Exp $" +#define __CONFMENU_H__ "@(#)$Id: confmenu.h,v 1.7 2003/11/01 14:20:13 mweiser Exp $" /* returns <0=error, 0=exit+nosave, >0=exit+save */ int Configure( Client *sample_client, int nottycheck ); diff --git a/common/confopt.cpp b/common/confopt.cpp index d4c110e9b..73a139455 100644 --- a/common/confopt.cpp +++ b/common/confopt.cpp @@ -4,7 +4,7 @@ * Any other distribution or use of this source violates copyright. */ const char *confopt_cpp(void) { -return "@(#)$Id: confopt.cpp,v 1.52 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: confopt.cpp,v 1.53 2003/11/01 14:20:13 mweiser Exp $"; } /* ----------------------------------------------------------------------- */ @@ -629,7 +629,6 @@ struct optionstruct conf_options[CONF_OPTION_COUNT] = { " in the \"Log file limit\" option is reached.\n" "3) fifo the oldest lines in the file will be discarded when the size\n" " of the file exceeds the limit in the \"Log file limit\" option.\n" - " This option is not supported on VMS.\n" "4) rotate a new file will be created when the rotation interval specified\n" " in the \"Log file limit\" option is exceeded.\n" ),CONF_MENU_LOG,CONF_TYPE_INT,NULL,NULL /*logtypes[]*/,0,0,NULL,NULL diff --git a/common/confopt.h b/common/confopt.h index a2760662a..ac6e9f2aa 100644 --- a/common/confopt.h +++ b/common/confopt.h @@ -6,7 +6,7 @@ */ #ifndef __CONFOPT_H__ -#define __CONFOPT_H__ "@(#)$Id: confopt.h,v 1.25 2003/09/12 22:29:25 mweiser Exp $" +#define __CONFOPT_H__ "@(#)$Id: confopt.h,v 1.26 2003/11/01 14:20:13 mweiser Exp $" enum /* anonymous */ { diff --git a/common/confrwv.cpp b/common/confrwv.cpp index 8af1bab74..c81b5ad79 100644 --- a/common/confrwv.cpp +++ b/common/confrwv.cpp @@ -6,7 +6,7 @@ * Written by Cyrus Patel */ const char *confrwv_cpp(void) { -return "@(#)$Id: confrwv.cpp,v 1.93 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: confrwv.cpp,v 1.94 2003/11/01 14:20:13 mweiser Exp $"; } //#define TRACE diff --git a/common/confrwv.h b/common/confrwv.h index 57de38ae3..a4e713793 100644 --- a/common/confrwv.h +++ b/common/confrwv.h @@ -6,7 +6,7 @@ */ #ifndef __CONFRWV_H__ -#define __CONFRWV_H__ "@(#)$Id: confrwv.h,v 1.17 2003/09/12 22:29:25 mweiser Exp $" +#define __CONFRWV_H__ "@(#)$Id: confrwv.h,v 1.18 2003/11/01 14:20:13 mweiser Exp $" int ConfigRead(Client *client); int ConfigWrite(Client *client); diff --git a/common/console.cpp b/common/console.cpp index 46a2ff6e9..71772d56e 100644 --- a/common/console.cpp +++ b/common/console.cpp @@ -14,7 +14,7 @@ * ---------------------------------------------------------------------- */ const char *console_cpp(void) { -return "@(#)$Id: console.cpp,v 1.76 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: console.cpp,v 1.77 2003/11/01 14:20:13 mweiser Exp $"; } /* -------------------------------------------------------------------- */ @@ -361,6 +361,13 @@ int ConInKey(int timeout_millisecs) /* Returns -1 if err. 0 if timed out. */ fflush(stdout); ch = getch(); } + #elif (CLIENT_OS == OS_VMS) + { + fflush(stdout); /* OpenVMS doesn't support select() */ + ch = getchar(); /* for non-socket devices such as */ + if (ch == EOF) /* stdin. Use getchar() instead. */ + ch = 0; + } #elif (defined(HAVE_TERMIOS)) { struct termios stored; diff --git a/common/console.h b/common/console.h index a849bad1d..a869712d3 100644 --- a/common/console.h +++ b/common/console.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __CONSOLE_H__ -#define __CONSOLE_H__ "@(#)$Id: console.h,v 1.34 2003/09/12 22:29:25 mweiser Exp $" +#define __CONSOLE_H__ "@(#)$Id: console.h,v 1.35 2003/11/01 14:20:13 mweiser Exp $" // ConIsScreen() returns non-zero if console represents the screen // also returns 0 if the console is not initialized. diff --git a/common/convdes.cpp b/common/convdes.cpp index 932f0a2b3..2ea782892 100644 --- a/common/convdes.cpp +++ b/common/convdes.cpp @@ -5,7 +5,7 @@ * */ const char *convdes_cpp(void) { -return "@(#)$Id: convdes.cpp,v 1.15 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: convdes.cpp,v 1.16 2003/11/01 14:20:13 mweiser Exp $"; } /* DES convertion routines */ diff --git a/common/convdes.h b/common/convdes.h index 9fdc56ba8..29dd5e576 100644 --- a/common/convdes.h +++ b/common/convdes.h @@ -10,7 +10,7 @@ * --------------------------------------------------------------- */ #ifndef __CONVDES_H__ -#define __CONVDES_H__ "@(#)$Id: convdes.h,v 1.10 2003/09/12 22:29:25 mweiser Exp $" +#define __CONVDES_H__ "@(#)$Id: convdes.h,v 1.11 2003/11/01 14:20:13 mweiser Exp $" // odd_parity[n] = (n & 0xFE) | b // b set so that odd_parity[n] has an odd number of bits diff --git a/common/coremem.cpp b/common/coremem.cpp index 94d760364..fd3ed0c4c 100644 --- a/common/coremem.cpp +++ b/common/coremem.cpp @@ -9,7 +9,7 @@ * Created March 2001 by Cyrus Patel */ const char *probmem_cpp(void) { -return "@(#)$Id: coremem.cpp,v 1.3 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: coremem.cpp,v 1.4 2003/11/01 14:20:13 mweiser Exp $"; } //#define TRACE diff --git a/common/coremem.h b/common/coremem.h index c8d6c16ea..d22642293 100644 --- a/common/coremem.h +++ b/common/coremem.h @@ -12,7 +12,7 @@ */ #ifndef __COREMEM_H__ -#define __COREMEM_H__ "@(#)$Id: coremem.h,v 1.3 2003/09/12 22:29:25 mweiser Exp $" +#define __COREMEM_H__ "@(#)$Id: coremem.h,v 1.4 2003/11/01 14:20:13 mweiser Exp $" #ifdef __cplusplus /* header may be included by cores */ extern "C" { diff --git a/common/cpucheck.cpp b/common/cpucheck.cpp index fa69faf96..923c70479 100644 --- a/common/cpucheck.cpp +++ b/common/cpucheck.cpp @@ -10,7 +10,7 @@ * */ const char *cpucheck_cpp(void) { -return "@(#)$Id: cpucheck.cpp,v 1.116 2003/09/12 23:58:17 mweiser Exp $"; } +return "@(#)$Id: cpucheck.cpp,v 1.117 2003/11/01 14:20:13 mweiser Exp $"; } #include "cputypes.h" #include "baseincs.h" // for platform specific header files @@ -48,7 +48,7 @@ return "@(#)$Id: cpucheck.cpp,v 1.116 2003/09/12 23:58:17 mweiser Exp $"; } to NULL if we have a name, but no ID: return ID==0, set cpuname to the raw name (eg "PCA56" ) - if we have an ID and a name: return ID and fully formatted + if we have an ID and a name: return ID and fully formatted name (eg "Alpha EV5.6 (21164PC)") if we have an ID but no name: return ID, set cpuname to "" - cyp April/03/1999 @@ -135,6 +135,7 @@ int GetNumberOfDetectedProcessors( void ) //returns -1 if not supported { buffer[sizeof(buffer) - 1] = '\0'; #if (CLIENT_CPU == CPU_X86 || \ + CLIENT_CPU == CPU_X86_64 || \ CLIENT_CPU == CPU_POWERPC || \ CLIENT_CPU == CPU_S390 || \ CLIENT_CPU == CPU_S390X || \ @@ -568,7 +569,7 @@ static long __GetRawProcessorID(const char **cpuname) { detectedtype = si.wProcessorRevision; if (detectedtype == 0) - detectedtype = si.wProcessorLevel; + detectedtype = si.wProcessorLevel; if (detectedtype == 0) detectedtype = -1; } @@ -826,7 +827,7 @@ static long __GetRawProcessorID(const char **cpuname) { /* ---------------------------------------------------------------------- */ -#if (CLIENT_CPU == CPU_X86) +#if (CLIENT_CPU == CPU_X86) || (CLIENT_CPU == CPU_X86_64) static u32 __os_x86ident_fixup(u32 x86ident_result) { #if (CLIENT_OS == OS_LINUX) @@ -873,7 +874,7 @@ static u32 __os_x86ident_fixup(u32 x86ident_result) vendor_id = 0x7943; else break; - } + } else if (strcmp(buf, "model name")==0) { if (strncmp(p, "5x86", 4)!=0) @@ -918,7 +919,7 @@ long __GetRawProcessorID(const char **cpuname, int whattoret = 0 ) const char *vendorname = NULL; const char *chipname_override = NULL; int cpuidbmask, cpuid, vendorid; u32 dettype; - struct cpuxref { int cpuid, cpufeatures, simpleid; + struct cpuxref { int cpuid, cpufeatures, simpleid; const char *cpuname; } *internalxref = NULL; #if (CLIENT_OS == OS_WIN32) || (CLIENT_OS == OS_WIN16) @@ -973,7 +974,7 @@ long __GetRawProcessorID(const char **cpuname, int whattoret = 0 ) cpuidbmask = 0x0ff0; } else if ( vendorid == 0x7943 /* 'yC' */ ) /* CyrixInstead */ - { + { static struct cpuxref cyrixxref[]={ { 0x0400, CPU_F_I486, 6, "486SLC/DLC/SR/DR" }, { 0x0410, CPU_F_I486, 6, "486S/Se/S2/DX/DX2" }, @@ -1216,70 +1217,92 @@ static void ARMident_catcher(int) #endif #if (CLIENT_CPU == CPU_ARM) +signed int default_rc5_core = -1; +signed int default_r72_core = -1; +signed int default_ogr_core = -1; + static long __GetRawProcessorID(const char **cpuname ) { static long detectedtype = -2L; /* -1 == failed, -2 == not supported */ static const char *detectedname = NULL; - static char namebuf[60]; + static char namebuf[65]; + static struct { + unsigned int id, mask; + signed int rc5, r72, ogr; + char *name; + } ids[] = { + // ARM + { 0x41560200, 0xfffffff0, 2, 1, 1, "ARM 2" }, + { 0x41560250, 0xfffffff0, 2, 1, 1, "ARM 250" }, + { 0x41560300, 0xfffffff0, 0, 1, 1, "ARM 3" }, + { 0x41560600, 0xfffffff0, 0, 1, 1, "ARM 600" }, + { 0x41560610, 0xfffffff0, 0, 1, 1, "ARM 610" }, + { 0x41560200, 0xfffffff0, 0, 1, 1, "ARM 620" }, + { 0x41007000, 0xfffffff0, 0, 1, 1, "ARM 700" }, + { 0x41007100, 0xfffffff0, 0, 1, 1, "ARM 710" }, + { 0x41007500, 0xffffffff, 0, 1, 1, "ARM 7500" }, // 7500/FEL are "artificial" ids + { 0x410F7500, 0xffffffff, 0, 1, 1, "ARM 7500FEL" }, // created by IOMD detection + { 0x41047100, 0xfffffff0, 0, 1, 1, "ARM 7100" }, + { 0x41807100, 0xfffffff0, 0, 1, 1, "ARM 710T" }, + { 0x41807200, 0xfffffff0, 0, 1, 1, "ARM 720T" }, + { 0x41807400, 0xfffffff0, 0, 1, 1, "ARM 740T8K" }, + { 0x41817400, 0xfffffff0, 0, 1, 1, "ARM 740T4K" }, + { 0x41018100, 0xfffffff0, 1, 0, 0, "ARM 810" }, + { 0x41129200, 0xfffffff0, 1, 0, 0, "ARM 920T" }, + { 0x41029220, 0xfffffff0, 1, 0, 0, "ARM 922T" }, + { 0x41009260, 0xff00fff0, 1, 0, 0, "ARM 926" }, + { 0x41029400, 0xfffffff0, 1, 0, 0, "ARM 940T" }, + { 0x41049460, 0xfffffff0, 1, 0, 0, "ARM 946ES" }, + { 0x41049660, 0xfffffff0, 1, 0, 0, "ARM 966ES" }, + { 0x41059660, 0xfffffff0, 1, 0, 0, "ARM 966ESR" }, + { 0x4100a200, 0xff00fff0, 1, 0, 0, "ARM 1020" }, + { 0x4100a260, 0xff00fff0, 1, 0, 0, "ARM 1026" }, + // ? + { 0x54029150, 0xfffffff0, 1, 0, 0, "ARM 915" }, + { 0x54029250, 0xfffffff0, 1, 0, 0, "ARM 925" }, + // Digital + { 0x4401a100, 0xfffffff0, 1, 0, 0, "Digital StrongARM 110" }, + { 0x4401a110, 0xfffffff0, 1, 0, 0, "Digital StrongARM 1100" }, + // Intel + { 0x6901b110, 0xfffffff0, 1, 0, 0, "Intel StrongARM 1110" }, + { 0x69052120, 0xffffe3f0, 1, 0, 0, "Intel PXA210" }, + { 0x69052100, 0xffffe3f0, 1, 0, 0, "Intel PXA250/255" }, + { 0x69052000, 0xffffe3f0, 1, 0, 0, "Intel 80200" }, + { 0x69052C30, 0xffffe3f0, 1, 0, 0, "Intel IOP321" }, + { 0x00000000, 0x00000000, -1, -1, -1, "" } + }; #if (CLIENT_OS == OS_RISCOS) if ( detectedtype == -2L ) { - /* - ARMident() will throw SIGILL on an ARM 2 or ARM 250, because they - don't have the system control coprocessor. (We ignore the ARM 1 - because I'm not aware of any existing C++ compiler that targets it...) - */ - signal(SIGILL, ARMident_catcher); - if (setjmp(ARMident_jmpbuf)) - { - /* we can't differentiate between ARM 2 and 250 */ - detectedtype = 0x2000; /* fake up value from ARMident() */ - detectedname = "ARM 2 or 250"; /* set the name here too */ - } - else - detectedtype = ARMident(); - signal(SIGILL, SIG_DFL); - - detectedtype = (detectedtype >> 4) & 0xfff; // extract part number field - if ((detectedtype & 0xf00) == 0) //old-style ID (ARM 3 or prototype ARM 600) - detectedtype <<= 4; // - shift it into the new form - if (detectedtype == 0x710) - { - // the ARM 7500 returns an ARM 710 ID - need to look at its - // integral IOMD unit to spot the difference - u32 detectediomd = IOMDident(); - detectediomd &= 0xff00; // just want most significant byte - if (detectediomd == 0x5b00) - detectedtype = 0x7500; - else if (detectediomd == 0xaa00) - detectedtype = 0x7500FEL; - } + detectedtype = ARMident(); + sprintf(namebuf, "%0lX", detectedtype); } #elif (CLIENT_OS == OS_LINUX) if (detectedtype == -2) { - unsigned int n; + char buffer[256]; + unsigned int i, n, o; FILE *cpuinfo; - detectedtype = -1L; - namebuf[0] = '\0'; + + namebuf[0]='\0'; + o=0; if ((cpuinfo = fopen( "/proc/cpuinfo", "r")) != NULL) { - char buffer[256]; - n = 0; - while(fgets(buffer, sizeof(buffer), cpuinfo)) + while (fgets(buffer, sizeof(buffer), cpuinfo)) { - if(memcmp(buffer, "Type\t\t: ", 8) == 0) - n = 8; - if(memcmp(buffer, "Processor\t: ", 12) == 0) - n = 12; - - if(n != 0) + if (memcmp(buffer, "Type\t\t: ", 8) == 0) + o=8; + if (memcmp(buffer, "Processor\t: ", 12) == 0) + o=12; + if (o!=0) { - if (memcmp(&buffer[n], "Intel ", 6) == 0) - n += 6; - strncpy(namebuf, &buffer[n], sizeof(namebuf)-1); - namebuf[sizeof(namebuf)-1] = '\0'; + n=strlen(buffer)-o-1; + if (n > (sizeof(namebuf)-1)) + n=sizeof(namebuf)-1; + for (i=0; i 0 && detectedname == NULL) + if (detectedtype != -2) { - detectedname = ((const char *)&(namebuf[0])); - switch (detectedtype) + for (int n=0; detectedname==NULL; n++) { - case 0x200: strcpy( namebuf, "ARM 2" ); break; - case 0x300: strcpy( namebuf, "ARM 3" ); break; - case 0xA10: strcpy( namebuf, "StrongARM 110" ); break; - case 0xA11: strcpy( namebuf, "StrongARM 1100" ); break; - case 0xB11: strcpy( namebuf, "StrongARM 1110" ); break; - case 0x250: - case 0x600: - case 0x610: - case 0x700: - case 0x7500: - case 0x7500FEL: - case 0x710: - case 0x810: sprintf( namebuf, "ARM %lX", detectedtype ); - break; - default: sprintf( namebuf, "%lX", detectedtype ); - detectedtype = 0; - break; + if ((detectedtype & ids[n].mask) == (ids[n].id & ids[n].mask)) + { + if (ids[n].id == 0) + { + detectedname = namebuf; + detectedtype = 0; + } + else + { + detectedname = ids[n].name; + } + default_rc5_core = ids[n].rc5; + default_r72_core = ids[n].r72; + default_ogr_core = ids[n].ogr; + } } } @@ -1908,8 +1933,9 @@ long GetProcessorType(int quietly) const char *apd = "Automatic processor type detection "; #if (CLIENT_CPU == CPU_ALPHA) || (CLIENT_CPU == CPU_68K) || \ (CLIENT_CPU == CPU_POWERPC) || (CLIENT_CPU == CPU_POWER) || \ - (CLIENT_CPU == CPU_X86) || (CLIENT_CPU == CPU_ARM) || \ - (CLIENT_CPU == CPU_MIPS) || (CLIENT_CPU == CPU_SPARC) + (CLIENT_CPU == CPU_X86) || (CLIENT_CPU == CPU_X86_64) || \ + (CLIENT_CPU == CPU_MIPS) || (CLIENT_CPU == CPU_SPARC) || \ + (CLIENT_CPU == CPU_ARM) { const char *cpuname = NULL; long rawid = __GetRawProcessorID(&cpuname); @@ -2003,9 +2029,9 @@ void GetProcessorInformationStrings( const char ** scpuid, const char ** smaxscp #if (CLIENT_CPU == CPU_ALPHA) || (CLIENT_CPU == CPU_68K) || \ (CLIENT_CPU == CPU_POWERPC) || (CLIENT_CPU == CPU_POWER) || \ - (CLIENT_CPU == CPU_X86) || (CLIENT_CPU == CPU_ARM) || \ - (CLIENT_CPU == CPU_MIPS) || (CLIENT_CPU == CPU_SPARC) - + (CLIENT_CPU == CPU_X86) || (CLIENT_CPU == CPU_X86_64) || \ + (CLIENT_CPU == CPU_MIPS) || (CLIENT_CPU == CPU_SPARC) || \ + (CLIENT_CPU == CPU_ARM) long rawid = __GetRawProcessorID(&cpuid_s); if (rawid < 0) cpuid_s = ((rawid==-1)?("?\n\t(identification failed)"): diff --git a/common/cpucheck.h b/common/cpucheck.h index 2845e1cfe..afb7182a0 100644 --- a/common/cpucheck.h +++ b/common/cpucheck.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __CPUCHECK_H__ -#define __CPUCHECK_H__ "@(#)$Id: cpucheck.h,v 1.15 2003/09/12 22:29:25 mweiser Exp $" +#define __CPUCHECK_H__ "@(#)$Id: cpucheck.h,v 1.16 2003/11/01 14:20:13 mweiser Exp $" // cpu feature flags (use by selcore.cpp) @@ -23,6 +23,22 @@ #endif +// cpu feature flags (use by selcore.cpp) + +#define CPU_F_MASK (0x0000ffffL) + +#if (CLIENT_CPU == CPU_X86) || (CLIENT_CPU == CPU_X86_64) + #define CPU_F_I386 (0x00000001L) + #define CPU_F_I486 (0x00000002L | CPU_F_I386) + #define CPU_F_I586 (0x00000004L | CPU_F_I486) + #define CPU_F_I686 (0x00000008L | CPU_F_I586) + #define CPU_F_MMX (0x00000100L) +// CPU_F_SSE, CPU_F_SSE2, ... + #define CPU_F_I586MMX (CPU_F_I586 | CPU_F_MMX) + #define CPU_F_I686MMX (CPU_F_I686 | CPU_F_MMX) +#endif + + //return number of processors detected (by the hardware/from the OS) //returns -1 if detection is not supported. int GetNumberOfDetectedProcessors( void ); diff --git a/common/cputypes.h b/common/cputypes.h index 6e845c79a..8ad02c143 100644 --- a/common/cputypes.h +++ b/common/cputypes.h @@ -8,7 +8,7 @@ */ #ifndef __CPUTYPES_H__ -#define __CPUTYPES_H__ "@(#)$Id: cputypes.h,v 1.87 2003/09/12 22:29:25 mweiser Exp $" +#define __CPUTYPES_H__ "@(#)$Id: cputypes.h,v 1.88 2003/11/01 14:20:13 mweiser Exp $" /* ----------------------------------------------------------------- */ @@ -325,7 +325,7 @@ #define CLIENT_OS OS_IRIX #define CLIENT_CPU CPU_MIPS #elif defined(__VMS) - #define CLIENT_OS_NAME "VMS" + #define CLIENT_OS_NAME "OpenVMS" #define CLIENT_OS OS_VMS #if defined(__ALPHA) #define CLIENT_CPU CPU_ALPHA diff --git a/common/disphelp.cpp b/common/disphelp.cpp index 1c8821e27..3ea5e1387 100644 --- a/common/disphelp.cpp +++ b/common/disphelp.cpp @@ -6,7 +6,7 @@ * Written by Cyrus Patel */ const char *disphelp_cpp(void) { -return "@(#)$Id: disphelp.cpp,v 1.73 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: disphelp.cpp,v 1.74 2003/11/01 14:20:13 mweiser Exp $"; } /* ----------------------------------------------------------------------- */ diff --git a/common/disphelp.h b/common/disphelp.h index 635ba9936..2aa1e7e27 100644 --- a/common/disphelp.h +++ b/common/disphelp.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __DISPHELP_H__ -#define __DISPHELP_H__ "@(#)$Id: disphelp.h,v 1.4 2003/09/12 22:29:25 mweiser Exp $" +#define __DISPHELP_H__ "@(#)$Id: disphelp.h,v 1.5 2003/11/01 14:20:13 mweiser Exp $" /* full-screen, interactive (except for unix-ish platforms) help for diff --git a/common/iniread.cpp b/common/iniread.cpp index cdeb9213b..fec67d557 100644 --- a/common/iniread.cpp +++ b/common/iniread.cpp @@ -18,7 +18,7 @@ */ const char *iniread_cpp(void) { -return "@(#)$Id: iniread.cpp,v 1.38 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: iniread.cpp,v 1.39 2003/11/01 14:20:13 mweiser Exp $"; } #include "baseincs.h" #include "iniread.h" @@ -559,7 +559,7 @@ static unsigned long ini_doit( int dowrite, const char *sect, else /* new size is less than old */ { /* we should use ftruncate here, but thats not - supported by MacOS, AmigaOS, VMS and perhaps others. + supported by MacOS, AmigaOS and perhaps others. */ if (fwrite( (void *)&nnn[0], sizeof(char), sizeof(nnn), file )!=sizeof(nnn)) diff --git a/common/logstuff.cpp b/common/logstuff.cpp index 8110ff33c..1b839d346 100644 --- a/common/logstuff.cpp +++ b/common/logstuff.cpp @@ -15,7 +15,7 @@ //#define TRACE const char *logstuff_cpp(void) { -return "@(#)$Id: logstuff.cpp,v 1.54 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: logstuff.cpp,v 1.55 2003/11/01 14:20:13 mweiser Exp $"; } #include "cputypes.h" #include "baseincs.h" // basic (even if port-specific) #includes @@ -286,9 +286,9 @@ static void InternalLogFile( const char *msgbuffer, unsigned int msglen, int /*f CLIENT_OS == OS_OS2 || CLIENT_OS == OS_WIN16 || \ CLIENT_OS == OS_WIN32) #define ftruncate( fd, sz ) chsize( fd, sz ) - #elif (CLIENT_OS == OS_VMS) - #define ftruncate( fd, sz ) //nada, not supported - #define FTRUNCATE_NOT_SUPPORTED +// #elif (CLIENT_OS == ) +// #define ftruncate( fd, sz ) //nada, not supported +// #define FTRUNCATE_NOT_SUPPORTED #endif int logfileType = logstatics.logfileType; unsigned int logfileLimit = logstatics.logfileLimit; diff --git a/common/logstuff.h b/common/logstuff.h index 69d680b3e..45fd73a8d 100644 --- a/common/logstuff.h +++ b/common/logstuff.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __LOGSTUFF_H__ -#define __LOGSTUFF_H__ "@(#)$Id: logstuff.h,v 1.15 2003/09/12 22:29:25 mweiser Exp $" +#define __LOGSTUFF_H__ "@(#)$Id: logstuff.h,v 1.16 2003/11/01 14:20:13 mweiser Exp $" /* this is shared with Configure() */ #define LOGFILETYPE_NONE 0 //no logging to file diff --git a/common/lurk.cpp b/common/lurk.cpp index e666fb13a..2fbbe4185 100644 --- a/common/lurk.cpp +++ b/common/lurk.cpp @@ -49,7 +49,7 @@ * otherwise it hangs up and returns zero. (no longer connected) */ const char *lurk_cpp(void) { -return "@(#)$Id: lurk.cpp,v 1.62 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: lurk.cpp,v 1.63 2003/11/01 14:20:13 mweiser Exp $"; } //#define TRACE @@ -248,9 +248,10 @@ int LurkCheckIfConnectRequested(void) //yes/no (CLIENT_OS == OS_OPENBSD) || (CLIENT_OS == OS_NETBSD) || \ (CLIENT_OS == OS_BSDOS) || \ ((CLIENT_OS == OS_MACOSX) && !defined(__RHAPSODY__)) || \ - (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) + (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) || \ + (CLIENT_OS == OS_VMS) #include - #if (CLIENT_OS == OS_DEC_UNIX) + #if (CLIENT_OS == OS_DEC_UNIX) || (CLIENT_OS == OS_VMS) #define _SOCKADDR_LEN #endif #include @@ -308,6 +309,12 @@ static HRASCONN hRasDialConnHandle = NULL; /* conn we opened with RasDial */ #include #define MAXSOCKETS 2048 #define soclose(s) close(s) //handled by EMX +#elif defined(__WATCOMC__) + #include + #include + #include // sleep + #include + #define soclose(s) close(s) #else //IBM distributed OS/2 developers toolkit #include #include @@ -465,7 +472,8 @@ int LurkGetCapabilityFlags(void) (CLIENT_OS == OS_OPENBSD) || (CLIENT_OS == OS_NETBSD) || \ (CLIENT_OS == OS_BSDOS) || (CLIENT_OS == OS_OS2) || \ ((CLIENT_OS == OS_MACOSX) && !defined(__RHAPSODY__)) || \ - (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) + (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) || \ + (CLIENT_OS == OS_VMS) what = (CONNECT_LURK | CONNECT_LURKONLY | CONNECT_DODBYSCRIPT | CONNECT_IFACEMASK); #elif (CLIENT_OS == OS_AMIGAOS) what = (CONNECT_LURK | CONNECT_LURKONLY | CONNECT_DODBYPROFILE | CONNECT_IFACEMASK); @@ -783,7 +791,8 @@ static int __MatchMask( const char *ifrname, int is_dialup_dev_for_sure, || (strcmp(wildmask,"ppp*")==0 #if (CLIENT_OS == OS_FREEBSD) || (CLIENT_OS == OS_OPENBSD) || \ (CLIENT_OS == OS_NETBSD) || (CLIENT_OS == OS_BSDOS) || \ - ((CLIENT_OS == OS_MACOSX) && !defined(__RHAPSODY__)) + ((CLIENT_OS == OS_MACOSX) && !defined(__RHAPSODY__)) || \ + (CLIENT_OS == OS_VMS) || strcmp(wildmask,"dun*")==0 || strcmp(wildmask,"tun*")==0 #elif (CLIENT_OS == OS_AMIGAOS) @@ -1259,7 +1268,7 @@ static int __LurkIsConnected(void) //must always returns a valid yes/no } #elif (CLIENT_OS == OS_OS2) && !defined(__EMX__) - int s, i, rc, j, foundif = 0; + int s, i, j, foundif = 0; struct ifmib MyIFMib = {0}; struct ifact MyIFNet = {0}; @@ -1281,9 +1290,9 @@ static int __LurkIsConnected(void) //must always returns a valid yes/no for (i = 0; i < MyIFNet.ifNumber; i++) { j = MyIFNet.iftable[i].ifIndex; /* j is now the index into the stats table for this i/f */ - if (lurker.mask_default_only == 0 || MyIFMib.iftable[j].ifType != HT_ETHER) /* i/f is not ethernet */ + if (lurker.mask_default_only == 0 || MyIFMib.iftable[j].iftType != HT_ETHER) /* i/f is not ethernet */ { - if (MyIFMib.iftable[j].ifType != HT_PPP) /* i/f is not loopback (yes I know it says PPP) */ + if (MyIFMib.iftable[j].iftType != HT_PPP) /* i/f is not loopback (yes I know it says PPP) */ { if (MyIFNet.iftable[i].ifa_addr != 0x0100007f) /* same thing for TCPIP < 4.1 */ { @@ -1314,7 +1323,7 @@ static int __LurkIsConnected(void) //must always returns a valid yes/no if (lurker.mask_include_all) ismatched = 1; else if (lurker.mask_default_only) - ismatched = (MyIFMib.iftable[j].ifType != HT_ETHER); + ismatched = (MyIFMib.iftable[j].iftType != HT_ETHER); else { int maskpos; @@ -1359,7 +1368,8 @@ static int __LurkIsConnected(void) //must always returns a valid yes/no (CLIENT_OS == OS_BSDOS) || (CLIENT_OS == OS_AMIGAOS) || \ ((CLIENT_OS == OS_MACOSX) && !defined(__RHAPSODY__)) || \ ((CLIENT_OS == OS_OS2) && defined(__EMX__)) || \ - (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) + (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) || \ + (CLIENT_OS == OS_VMS) struct ifconf ifc; struct ifreq *ifr; int n, foundif = 0; @@ -1468,7 +1478,8 @@ static int __LurkIsConnected(void) //must always returns a valid yes/no #elif (CLIENT_OS == OS_FREEBSD) || (CLIENT_OS == OS_OPENBSD) || \ (CLIENT_OS == OS_BSDOS) || (CLIENT_OS == OS_NETBSD) || \ ((CLIENT_OS == OS_MACOSX) && !defined(__RHAPSODY__)) || \ - (CLIENT_OS == OS_AMIGAOS) || (CLIENT_OS == OS_DEC_UNIX) + (CLIENT_OS == OS_AMIGAOS) || (CLIENT_OS == OS_DEC_UNIX) || \ + (CLIENT_OS == OS_VMS) /* Calculate size of ifreq - _SIZEOF_ADDR_IFREQ used by FreeBSD */ #ifdef _SIZEOF_ADDR_IFREQ #define SIZEOF_ADDR_IFREQ(sa,ifr) (_SIZEOF_ADDR_IFREQ(*ifr)) @@ -1782,7 +1793,8 @@ int LurkDialIfNeeded(int force /* !0== override lurk-only */ ) (CLIENT_OS == OS_FREEBSD) || (CLIENT_OS == OS_OPENBSD) || \ (CLIENT_OS == OS_NETBSD) || (CLIENT_OS == OS_BSDOS) || \ ((CLIENT_OS == OS_MACOSX) && !defined(__RHAPSODY__)) || \ - (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) + (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) || \ + (CLIENT_OS == OS_VMS) lurker.dohangupcontrol = 0; if (lurker.conf.connstartcmd[0] == 0) /* we don't do dialup */ { @@ -1960,7 +1972,8 @@ int LurkHangupIfNeeded(void) //returns 0 on success, -1 on fail (CLIENT_OS == OS_FREEBSD) || (CLIENT_OS == OS_OPENBSD) || \ (CLIENT_OS == OS_NETBSD) || (CLIENT_OS == OS_BSDOS) || \ ((CLIENT_OS == OS_MACOSX) && !defined(__RHAPSODY__)) || \ - (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) + (CLIENT_OS == OS_PS2LINUX) || (CLIENT_OS == OS_DEC_UNIX) || \ + (CLIENT_OS == OS_VMS) if (isconnected) { diff --git a/common/lurk.h b/common/lurk.h index 0b1481c6f..6b8503a88 100644 --- a/common/lurk.h +++ b/common/lurk.h @@ -6,7 +6,7 @@ // #ifndef __LURK_H__ -#define __LURK_H__ "@(#)$Id: lurk.h,v 1.26 2003/09/12 22:29:25 mweiser Exp $" +#define __LURK_H__ "@(#)$Id: lurk.h,v 1.27 2003/11/01 14:20:13 mweiser Exp $" /* lurk: fetch/flush if modem goes online but also go online if fetch/flush needed */ #define CONNECT_LURK 0x01 diff --git a/common/mail.cpp b/common/mail.cpp index fda3d66c6..9b99e27b6 100644 --- a/common/mail.cpp +++ b/common/mail.cpp @@ -7,7 +7,7 @@ * Complete rewrite by Cyrus Patel (cyp@fb14.uni-mainz.de) 1998/08/15 */ const char *mail_cpp(void) { -return "@(#)$Id: mail.cpp,v 1.43 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: mail.cpp,v 1.44 2003/11/01 14:20:13 mweiser Exp $"; } //#define SHOWMAIL // define showmail to see mail transcript on stdout diff --git a/common/mail.h b/common/mail.h index 1607704f5..dc162e65d 100644 --- a/common/mail.h +++ b/common/mail.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __MAIL_H__ -#define __MAIL_H__ "@(#)$Id: mail.h,v 1.19 2003/09/12 22:29:25 mweiser Exp $" +#define __MAIL_H__ "@(#)$Id: mail.h,v 1.20 2003/11/01 14:20:13 mweiser Exp $" extern void * smtp_construct_message( unsigned long sendthresh, const char *smtphost, unsigned int smtpport, diff --git a/common/memfile.cpp b/common/memfile.cpp index 31c97f3dc..c5bddb3b6 100644 --- a/common/memfile.cpp +++ b/common/memfile.cpp @@ -15,13 +15,16 @@ ** mdup(). The stream object used/created by these functions is a MEMFILE *. */ const char *memfile_cpp(void) { -return "@(#)$Id: memfile.cpp,v 1.6 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: memfile.cpp,v 1.7 2003/11/01 14:20:13 mweiser Exp $"; } #include #include #if (CLIENT_OS != OS_MACOS) #include #endif +#if (CLIENT_OS == OS_VMS) + #include /* malloc, free, etc. */ +#endif #include "memfile.h" /* thats us */ /* #define TEST */ diff --git a/common/memfile.h b/common/memfile.h index 3064631a0..163bd4021 100644 --- a/common/memfile.h +++ b/common/memfile.h @@ -17,7 +17,7 @@ ** */ #ifndef __MEMFILE_H__ -#define __MEMFILE_H__ "@(#)$Id: memfile.h,v 1.4 2003/09/12 22:29:25 mweiser Exp $" +#define __MEMFILE_H__ "@(#)$Id: memfile.h,v 1.5 2003/11/01 14:20:13 mweiser Exp $" #include /* required for the size_t typedef */ diff --git a/common/modereq.cpp b/common/modereq.cpp index 6ea4a6336..5726db117 100644 --- a/common/modereq.cpp +++ b/common/modereq.cpp @@ -12,7 +12,7 @@ * --------------------------------------------------------------- */ const char *modereq_cpp(void) { -return "@(#)$Id: modereq.cpp,v 1.39 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: modereq.cpp,v 1.40 2003/11/01 14:20:13 mweiser Exp $"; } //#define TRACE diff --git a/common/modereq.h b/common/modereq.h index ea661751f..77f766771 100644 --- a/common/modereq.h +++ b/common/modereq.h @@ -14,7 +14,7 @@ */ #ifndef __MODEREQ_H__ -#define __MODEREQ_H__ "@(#)$Id: modereq.h,v 1.21 2003/09/12 22:29:25 mweiser Exp $" +#define __MODEREQ_H__ "@(#)$Id: modereq.h,v 1.22 2003/11/01 14:20:13 mweiser Exp $" #define MODEREQ_IDENT 0x00000001 #define MODEREQ_CPUINFO 0x00000002 diff --git a/common/netbase.cpp b/common/netbase.cpp index b8c8813c4..47007a8c0 100644 --- a/common/netbase.cpp +++ b/common/netbase.cpp @@ -63,7 +63,7 @@ * */ const char *netbase_cpp(void) { -return "@(#)$Id: netbase.cpp,v 1.6 2003/09/12 22:29:25 mweiser Exp $"; } +return "@(#)$Id: netbase.cpp,v 1.7 2003/11/01 14:20:13 mweiser Exp $"; } #define TRACE /* expect trace to _really_ slow I/O down */ #define TRACE_STACKIDC(x) //TRACE_OUT(x) /* stack init/shutdown/check calls */ @@ -91,28 +91,10 @@ return "@(#)$Id: netbase.cpp,v 1.6 2003/09/12 22:29:25 mweiser Exp $"; } #include "baseincs.h" #if (CLIENT_OS == OS_VMS) - #ifdef __VMS_UCX__ // define for UCX instead of Multinet on VMS - #include - #include - #include - #include - #include - #include - #elif defined(MULTINET) - #include "multinet_root:[multinet.include.sys]types.h" - #include "multinet_root:[multinet.include.sys]ioctl.h" - #include "multinet_root:[multinet.include.sys]param.h" - #include "multinet_root:[multinet.include.sys]time.h" - #include "multinet_root:[multinet.include.sys]socket.h" - #include "multinet_root:[multinet.include]netdb.h" - #include "multinet_root:[multinet.include.netinet]in_systm.h" - #ifndef multinet_inet_addr - extern "C" unsigned long int inet_addr(const char *cp); - #endif - #ifndef multinet_inet_ntoa - extern "C" char *inet_ntoa(struct in_addr in); - #endif - #endif + #include + #include + #include + #include #elif (CLIENT_OS == OS_OS2) #define BSD_SELECT #include @@ -200,6 +182,8 @@ return "@(#)$Id: netbase.cpp,v 1.6 2003/09/12 22:29:25 mweiser Exp $"; } extern "C" int gethostname(char *, size_t); #elif (CLIENT_OS == OS_AMIGAOS) #define socklen_t long +#elif (CLIENT_OS == OS_VMS) + #define socklen_t uint #else #define socklen_t int #endif @@ -1561,20 +1545,10 @@ static int net_ioctl( SOCKET sock, unsigned long opt, int *i_optval ) #endif return 0; #elif (CLIENT_OS == OS_VMS) - unsigned long optval = (unsigned long)*i_optval; - #if defined(FIONBIO) && defined(__VMS_UCX__) - // nonblocking sockets not directly supported by UCX - // - DIGITAL's work around requires system privileges to use - if (opt = FIONBIO) { errno = EPERM; return ps_stdneterr; } - #endif - /* defined(MULTINET) or opt!=FIONBIO */ - if (socket_ioctl(sock, opt, &optval)!=0) + int optval = (int)*i_optval; + if (ioctl(sock, (int)opt, (char *) &optval)!=0) return ps_stdneterr; - #if (UINT_MAX != ULONG_MAX) - *i_optval = (int)((optval > UINT_MAX) ? (UINT_MAX) : (optval)); - #else *i_optval = (int)optval; - #endif return 0; #elif (CLIENT_OS == OS_RISCOS) int optval = (int)*i_optval; diff --git a/common/netbase.h b/common/netbase.h index 63c985783..a563d7bb5 100644 --- a/common/netbase.h +++ b/common/netbase.h @@ -13,7 +13,7 @@ * module. */ #ifndef __NETBASE_H__ -#define __NETBASE_H__ "@(#)$Id: netbase.h,v 1.3 2003/09/12 22:29:26 mweiser Exp $" +#define __NETBASE_H__ "@(#)$Id: netbase.h,v 1.4 2003/11/01 14:20:14 mweiser Exp $" #include "cputypes.h" /* u32 */ diff --git a/common/netconn.cpp b/common/netconn.cpp index be6df90fb..bd756acf3 100644 --- a/common/netconn.cpp +++ b/common/netconn.cpp @@ -17,7 +17,7 @@ * */ const char *netconn_cpp(void) { -return "@(#)$Id: netconn.cpp,v 1.4 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: netconn.cpp,v 1.5 2003/11/01 14:20:14 mweiser Exp $"; } //#define TRACE //#define DUMP_PACKET diff --git a/common/netconn.h b/common/netconn.h index f4419bb84..e41e6b2c1 100644 --- a/common/netconn.h +++ b/common/netconn.h @@ -10,7 +10,7 @@ */ #ifndef __NETCONN_H__ -#define __NETCONN_H__ "@(#)$Id: netconn.h,v 1.3 2003/09/12 22:29:26 mweiser Exp $" +#define __NETCONN_H__ "@(#)$Id: netconn.h,v 1.4 2003/11/01 14:20:14 mweiser Exp $" /* netconn_open(): create a new connection. Returns a 'handle' for * subsequent netconn_xxx() operations or NULL on error. diff --git a/common/netres.h b/common/netres.h index 324a1a740..d816b78e8 100644 --- a/common/netres.h +++ b/common/netres.h @@ -6,7 +6,7 @@ */ #ifndef __NETRES_H__ -#define __NETRES_H__ "@(#)$Id: netres.h,v 1.5 2003/09/12 22:29:26 mweiser Exp $" +#define __NETRES_H__ "@(#)$Id: netres.h,v 1.6 2003/11/01 14:20:14 mweiser Exp $" int NetResolve( const char *host, int port, int resauto, u32 *addrlist, unsigned int addrlistcount, diff --git a/common/pathwork.cpp b/common/pathwork.cpp index 66c14934c..a3ab5d7ba 100644 --- a/common/pathwork.cpp +++ b/common/pathwork.cpp @@ -24,7 +24,7 @@ * altogether. */ const char *pathwork_cpp(void) { -return "@(#)$Id: pathwork.cpp,v 1.22 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: pathwork.cpp,v 1.23 2003/11/01 14:20:14 mweiser Exp $"; } // #define TRACE diff --git a/common/pathwork.h b/common/pathwork.h index 97403f446..bcf45198e 100644 --- a/common/pathwork.h +++ b/common/pathwork.h @@ -6,7 +6,7 @@ */ #ifndef __PATHWORK_H__ -#define __PATHWORK_H__ "@(#)$Id: pathwork.h,v 1.8 2003/09/12 22:29:26 mweiser Exp $" +#define __PATHWORK_H__ "@(#)$Id: pathwork.h,v 1.9 2003/11/01 14:20:14 mweiser Exp $" /* ------------------------------------------------------------------- * Get the working directory previously initialized with diff --git a/common/pollsys.cpp b/common/pollsys.cpp index 0629b49e5..11ac52888 100644 --- a/common/pollsys.cpp +++ b/common/pollsys.cpp @@ -40,7 +40,7 @@ * -------------------------------------------------------------------- */ const char *pollsys_cpp(void) { -return "@(#)$Id: pollsys.cpp,v 1.16 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: pollsys.cpp,v 1.17 2003/11/01 14:20:14 mweiser Exp $"; } #include "baseincs.h" /* NULL, malloc */ #include "clitime.h" /* CliTimer() */ diff --git a/common/pollsys.h b/common/pollsys.h index ecefff72f..58f85edb6 100644 --- a/common/pollsys.h +++ b/common/pollsys.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __POLLSYS_H__ -#define __POLLSYS_H__ "@(#)$Id: pollsys.h,v 1.5 2003/09/12 22:29:26 mweiser Exp $" +#define __POLLSYS_H__ "@(#)$Id: pollsys.h,v 1.6 2003/11/01 14:20:14 mweiser Exp $" #include "clitime.h" /* needed for timeval struct */ diff --git a/common/probfill.cpp b/common/probfill.cpp index aa2ec66c1..2b45dced6 100644 --- a/common/probfill.cpp +++ b/common/probfill.cpp @@ -13,7 +13,7 @@ * ----------------------------------------------------------------- */ const char *probfill_cpp(void) { -return "@(#)$Id: probfill.cpp,v 1.88 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: probfill.cpp,v 1.89 2003/11/01 14:20:14 mweiser Exp $"; } //#define TRACE diff --git a/common/probfill.h b/common/probfill.h index e48666f4b..725845525 100644 --- a/common/probfill.h +++ b/common/probfill.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __PROBFILL_H__ -#define __PROBFILL_H__ "@(#)$Id: probfill.h,v 1.18 2003/09/12 22:29:26 mweiser Exp $" +#define __PROBFILL_H__ "@(#)$Id: probfill.h,v 1.19 2003/11/01 14:20:14 mweiser Exp $" #define PROBFILL_ANYCHANGED 1 #define PROBFILL_GETBUFFERRS 2 diff --git a/common/problem.cpp b/common/problem.cpp index e56778c6e..5c52bd8ef 100644 --- a/common/problem.cpp +++ b/common/problem.cpp @@ -11,7 +11,7 @@ * ------------------------------------------------------------------- */ const char *problem_cpp(void) { -return "@(#)$Id: problem.cpp,v 1.179 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: problem.cpp,v 1.180 2003/11/01 14:20:14 mweiser Exp $"; } //#define TRACE #define TRACE_U64OPS(x) TRACE_OUT(x) diff --git a/common/problem.h b/common/problem.h index a8e37710d..13a24d311 100644 --- a/common/problem.h +++ b/common/problem.h @@ -8,7 +8,7 @@ */ #ifndef __PROBLEM_H__ -#define __PROBLEM_H__ "@(#)$Id: problem.h,v 1.95 2003/09/12 22:29:26 mweiser Exp $" +#define __PROBLEM_H__ "@(#)$Id: problem.h,v 1.96 2003/11/01 14:20:14 mweiser Exp $" #include "cputypes.h" /* u32 */ #include "ccoreio.h" /* Crypto core stuff (including RESULT_* enum members) */ diff --git a/common/probman.cpp b/common/probman.cpp index a7d2c3e7e..c9772d35e 100644 --- a/common/probman.cpp +++ b/common/probman.cpp @@ -6,7 +6,7 @@ * Created by Cyrus Patel (cyp@fb14.uni-mainz.de) */ const char *probman_cpp(void) { -return "@(#)$Id: probman.cpp,v 1.17 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: probman.cpp,v 1.18 2003/11/01 14:20:14 mweiser Exp $"; } #include "baseincs.h" // malloc()/NULL/memset() #include "problem.h" // Problem class diff --git a/common/probman.h b/common/probman.h index 4a3807926..7c11261fa 100644 --- a/common/probman.h +++ b/common/probman.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __PROBMAN_H__ -#define __PROBMAN_H__ "@(#)$Id: probman.h,v 1.7 2003/09/12 22:29:26 mweiser Exp $" +#define __PROBMAN_H__ "@(#)$Id: probman.h,v 1.8 2003/11/01 14:20:14 mweiser Exp $" //Return a specific Problem object or NULL if that problem doesn't exist Problem *GetProblemPointerFromIndex(unsigned int probindex); diff --git a/common/projdata.cpp b/common/projdata.cpp index e769a74e4..77d827a6d 100644 --- a/common/projdata.cpp +++ b/common/projdata.cpp @@ -4,7 +4,7 @@ * Any other distribution or use of this source violates copyright. */ const char *projdata_cpp(void) { -return "@(#)$Id: projdata.cpp,v 1.3 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: projdata.cpp,v 1.4 2003/11/01 14:20:14 mweiser Exp $"; } #include "cputypes.h" #include "projdata.h" diff --git a/common/projdata.h b/common/projdata.h index 6584b4eac..573aa4951 100644 --- a/common/projdata.h +++ b/common/projdata.h @@ -7,7 +7,7 @@ * This file should be shared between client and proxynet some day ... */ #ifndef __PROJDATA_H__ -#define __PROJDATA_H__ "@(#)$Id: projdata.h,v 1.2 2003/09/12 22:29:26 mweiser Exp $" +#define __PROJDATA_H__ "@(#)$Id: projdata.h,v 1.3 2003/11/01 14:20:14 mweiser Exp $" #include "cputypes.h" // u32 ... diff --git a/common/random.cpp b/common/random.cpp index fa5bf3adc..cb11f73e6 100644 --- a/common/random.cpp +++ b/common/random.cpp @@ -14,7 +14,7 @@ // ----------------------------------------------------------------- const char *random_cpp(void) { -return "@(#)$Id: random.cpp,v 1.6 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: random.cpp,v 1.7 2003/11/01 14:20:14 mweiser Exp $"; } #include "cputypes.h" /* u32 */ #include /* time() */ diff --git a/common/random.h b/common/random.h index 12b9bfc54..96f5028a7 100644 --- a/common/random.h +++ b/common/random.h @@ -13,7 +13,7 @@ #include "cputypes.h" /* for u32 */ #ifndef __RANDOM_H__ -#define __RANDOM_H__ "@(#)$Id: random.h,v 1.9 2003/09/12 22:29:26 mweiser Exp $" +#define __RANDOM_H__ "@(#)$Id: random.h,v 1.10 2003/11/01 14:20:14 mweiser Exp $" u32 Random( const u32 * u32data, unsigned int u32count ); // count = # of u32s of data... diff --git a/common/rsadata.h b/common/rsadata.h index b1aa902ad..d2315e309 100644 --- a/common/rsadata.h +++ b/common/rsadata.h @@ -6,7 +6,7 @@ // #ifndef __RSADATA_H__ -#define __RSADATA_H__ "@(#)$Id: rsadata.h,v 1.13 2003/09/12 22:29:26 mweiser Exp $" +#define __RSADATA_H__ "@(#)$Id: rsadata.h,v 1.14 2003/11/01 14:20:14 mweiser Exp $" // RC5-56: // Contest identifier: RC5-32/12/7 diff --git a/common/selcore.cpp b/common/selcore.cpp index 112995582..2fb9b8142 100644 --- a/common/selcore.cpp +++ b/common/selcore.cpp @@ -11,7 +11,7 @@ * ------------------------------------------------------------------- */ const char *selcore_cpp(void) { -return "@(#)$Id: selcore.cpp,v 1.113 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: selcore.cpp,v 1.114 2003/11/01 14:20:14 mweiser Exp $"; } //#define TRACE diff --git a/common/selcore.h b/common/selcore.h index 8bfa12c63..e690997fb 100644 --- a/common/selcore.h +++ b/common/selcore.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __SELCORE_H__ -#define __SELCORE_H__ "@(#)$Id: selcore.h,v 1.17 2003/09/12 22:29:26 mweiser Exp $" +#define __SELCORE_H__ "@(#)$Id: selcore.h,v 1.18 2003/11/01 14:20:14 mweiser Exp $" #include "cputypes.h" #include "ccoreio.h" diff --git a/common/selftest.cpp b/common/selftest.cpp index e0a9fa2c4..bf8084955 100644 --- a/common/selftest.cpp +++ b/common/selftest.cpp @@ -4,7 +4,7 @@ * Any other distribution or use of this source violates copyright. */ const char *selftest_cpp(void) { -return "@(#)$Id: selftest.cpp,v 1.86 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: selftest.cpp,v 1.87 2003/11/01 14:20:14 mweiser Exp $"; } #include "cputypes.h" #include "client.h" // CONTEST_COUNT diff --git a/common/selftest.h b/common/selftest.h index b63852e83..73b1979da 100644 --- a/common/selftest.h +++ b/common/selftest.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __SELFTEST_H__ -#define __SELFTEST_H__ "@(#)$Id: selftest.h,v 1.10 2003/09/12 22:29:26 mweiser Exp $" +#define __SELFTEST_H__ "@(#)$Id: selftest.h,v 1.11 2003/11/01 14:20:14 mweiser Exp $" /* returns number of tests if all passed or negative number if a test failed */ long SelfTest( unsigned int contest ); diff --git a/common/setprio.cpp b/common/setprio.cpp index f7e3d331c..bc457ec12 100644 --- a/common/setprio.cpp +++ b/common/setprio.cpp @@ -11,7 +11,7 @@ * ------------------------------------------------------------------ */ const char *setprio_cpp(void) { -return "@(#)$Id: setprio.cpp,v 1.61 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: setprio.cpp,v 1.62 2003/11/01 14:20:14 mweiser Exp $"; } #include "cputypes.h" // CLIENT_OS, CLIENT_CPU #include "client.h" // MAXCPUS, Packet, FileHeader, Client class, etc diff --git a/common/setprio.h b/common/setprio.h index 763e027ab..76a523f0e 100644 --- a/common/setprio.h +++ b/common/setprio.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __SETPRIO_H__ -#define __SETPRIO_H__ "@(#)$Id: setprio.h,v 1.4 2003/09/12 22:29:26 mweiser Exp $" +#define __SETPRIO_H__ "@(#)$Id: setprio.h,v 1.5 2003/11/01 14:20:14 mweiser Exp $" // 'prio' is a value on the scale of 0 to 9, where 0 is the lowest // priority and 9 is the highest priority [9 is what the priority would diff --git a/common/sleepdef.h b/common/sleepdef.h index bdcfbf629..52bf061fb 100644 --- a/common/sleepdef.h +++ b/common/sleepdef.h @@ -30,7 +30,7 @@ * ------------------------------------------------------------------ */ #ifndef __SLEEPDEF_H__ -#define __SLEEPDEF_H__ "@(#)$Id: sleepdef.h,v 1.38 2003/09/12 22:29:26 mweiser Exp $" +#define __SLEEPDEF_H__ "@(#)$Id: sleepdef.h,v 1.39 2003/11/01 14:20:14 mweiser Exp $" #include "cputypes.h" diff --git a/common/testplat.cpp b/common/testplat.cpp index 4b3074fb2..abd9adb92 100644 --- a/common/testplat.cpp +++ b/common/testplat.cpp @@ -7,7 +7,7 @@ * Specify 'build_dependancies' as argument * (which is all this needs to do anymore) * - * $Id: testplat.cpp,v 1.9 2003/09/12 22:29:26 mweiser Exp $ + * $Id: testplat.cpp,v 1.10 2003/11/01 14:20:14 mweiser Exp $ */ #include /* fopen()/fclose()/fread()/fwrite()/NULL */ #include /* strlen()/memmove() */ diff --git a/common/threadcd.cpp b/common/threadcd.cpp index fcce306af..34db61e0c 100644 --- a/common/threadcd.cpp +++ b/common/threadcd.cpp @@ -9,7 +9,7 @@ * */ const char *threadcd_cpp(void) { -return "@(#)$Id: threadcd.cpp,v 1.18 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: threadcd.cpp,v 1.19 2003/11/01 14:20:14 mweiser Exp $"; } #include //NULL #include "threadcd.h" //includes implementation and porting notes. diff --git a/common/threadcd.h b/common/threadcd.h index 6e1e37c89..3d971bf22 100644 --- a/common/threadcd.h +++ b/common/threadcd.h @@ -12,7 +12,7 @@ * ----------------------------------------------------------------------- */ #ifndef __THREADCD_H__ -#define __THREADCD_H__ "@(#)$Id: threadcd.h,v 1.16 2003/09/12 22:29:26 mweiser Exp $" +#define __THREADCD_H__ "@(#)$Id: threadcd.h,v 1.17 2003/11/01 14:20:14 mweiser Exp $" #include "cputypes.h" /* THREADID typedef */ diff --git a/common/triggers.cpp b/common/triggers.cpp index 243b5a4d2..0447b98f2 100644 --- a/common/triggers.cpp +++ b/common/triggers.cpp @@ -18,7 +18,7 @@ */ const char *triggers_cpp(void) { -return "@(#)$Id: triggers.cpp,v 1.32 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: triggers.cpp,v 1.33 2003/11/01 14:20:14 mweiser Exp $"; } /* ------------------------------------------------------------------------ */ @@ -687,7 +687,7 @@ static void __PollDrivenBreakCheck(int io_cycle_allowed) { /* io_cycle_allowed is non-zero when called through CheckExitRequestTrigger ** and is zero when called through CheckExitRequestTriggerNoIO() */ - DNETC_UNUSED_PARAM(io_cycle_allowed) + DNETC_UNUSED_PARAM(io_cycle_allowed); #if (CLIENT_OS == OS_RISCOS) /* This hs no equivalent in Unixlib but strange as it is, it seems to be not diff --git a/common/triggers.h b/common/triggers.h index bea6b1d4b..548624ec8 100644 --- a/common/triggers.h +++ b/common/triggers.h @@ -5,7 +5,7 @@ * Any other distribution or use of this source violates copyright. */ #ifndef __TRIGGERS_H__ -#define __TRIGGERS_H__ "@(#)$Id: triggers.h,v 1.10 2003/09/12 22:29:26 mweiser Exp $" +#define __TRIGGERS_H__ "@(#)$Id: triggers.h,v 1.11 2003/11/01 14:20:14 mweiser Exp $" #if defined(SIGCONT) && defined(SIGTSTP) /* These constants define symbolically the signal names used by the diff --git a/common/util.cpp b/common/util.cpp index 6f3f363f8..a9c970cce 100644 --- a/common/util.cpp +++ b/common/util.cpp @@ -6,7 +6,7 @@ * Created by Cyrus Patel */ const char *util_cpp(void) { -return "@(#)$Id: util.cpp,v 1.30 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: util.cpp,v 1.31 2003/11/01 14:20:14 mweiser Exp $"; } //#define TRACE diff --git a/common/version.h b/common/version.h index cd00c5d75..d28417bc6 100644 --- a/common/version.h +++ b/common/version.h @@ -25,7 +25,7 @@ * --------------------------------------------------------------------- */ #ifndef __VERSION_H__ -#define __VERSION_H__ "@(#)$Id: version.h,v 1.78 2003/09/12 22:29:26 mweiser Exp $" +#define __VERSION_H__ "@(#)$Id: version.h,v 1.79 2003/11/01 14:20:14 mweiser Exp $" /* BETA etc is handled internally/at-runtime by cliident.cpp. */ /* Do not adjust for BETA here, particularly CLIENT_VERSIONSTRING. */ diff --git a/configure b/configure index 9749e615a..03e175e33 100755 --- a/configure +++ b/configure @@ -4,7 +4,7 @@ # For use in distributed.net projects only. # Any other distribution or use of this source violates copyright. # -# @(#)$Id: configure,v 1.291 2003/09/12 22:29:25 mweiser Exp $ +# @(#)$Id: configure,v 1.292 2003/11/01 14:20:12 mweiser Exp $ # - If you wish to have the build automatically generate a .tar.gz ready # for upload, then add TARGET_TARBALL="--" @@ -56,9 +56,11 @@ TARGET_LDFLAGS="" TARGET_LIBS="" TARGET_HDIRS="./common" # the rest are added as needed TARGET_AS="as" -TARGET_NASM="nasm" #<- set this to "" if you have no nasm -TARGET_NASM_FMT="elf" #<- set this to "" if you have no nasm TARGET_ASFLAGS="" +TARGET_NASM="nasm" #<- set this to "" if you have no nasm +TARGET_NASM_FMT="elf" +TARGET_YASM="yasm" #<- set this to "" if you have no yasm +TARGET_YASM_FMT="elf" TARGET_STRIP="strip" TARGET_OGR_MULTI="" #<-can be used to compile ogr.cpp with differing gcc opts TARGET_IS_CROSSCOMPILE="" # @@ -66,6 +68,7 @@ TARGET_IS_CROSSCOMPILE="" # TARGET_ADDSRCS="" TARGET_ADDASMS="" TARGET_ADDNASMS="" +TARGET_ADDYASMS="" TARGET_ADDOBJS="" # Certain source files need to be compiled without optimization @@ -637,7 +640,23 @@ add_sources() # $1=os, $2=arch, $3=custom fi # HAVE_RC5_64 #----------------------------------------------------------------- elif [ "$2" = "x86_64" ]; then - : # pure ansi targets for now. + if [ "X$TARGET_YASM" = "X" -o "X$TARGET_YASM_FMT" = "X" ]; then #no YASM + echo You need YASM to build. + exit 1 + else + TARGET_ADDYASMS="$TARGET_ADDYASMS plat/x86_64/x86ident.asm" + fi + + # -------------- rc5-72 -------------- + if [ "$HAVE_RC5_72" = "1" ]; then + if [ "X$TARGET_YASM" != "X" -a "X$TARGET_YASM_FMT" != "X" ]; then + # -- yasm/rc5 -- + #DEFAULT_RC5_72="0" # don't add the ansi cores + TARGET_ADDYASMS="$TARGET_ADDYASMS \ + rc5-72/x86_64/r72-snjl.asm" + fi + fi # HAVE_RC5_72 + #----------------------------------------------------------------- else echo "Warning. Unknown arch '$2' to add_sources. Using all-ANSI cores." @@ -1374,10 +1393,10 @@ case "$1" in *arm-riscos-gccsdk) # RiscOS client crosscompiled under Unix using GCCSDK # and Unixlib (http://hard-mofo.dsvr.net/) - TARGET_CC="/home/peter/gccsdk-2.95.4-v3/cross/bin/gcc" + TARGET_CC="/home/peter/gccsdk-32/cross/bin/gcc" generate_gcc_opts "arm" "riscos" TARGET_CCFLAGS="$OPTS_GCC -Iplat/riscos -D__riscos" - TARGET_AS="/home/peter/gccsdk-2.95.4-v3/cross/bin/gcc" + TARGET_AS="/home/peter/gccsdk-32/cross/bin/gcc" TARGET_ASFLAGS="-c" TARGET_DOCFILES="docs/readme.riscos" #platform specific docfile TARGET_TARBALL="riscos-arm" @@ -2369,22 +2388,18 @@ case "$1" in *x86_64-linux*) # generic. works everywhere infer_arch_and_version "Linux" - TARGET_NASM_FMT="elf" + TARGET_YASM_FMT="elf" TARGET_AS="gcc -c" # can make aout if TARGET_CCFLAGS+=-aout TARGET_CC="gcc" generate_gcc_opts "${inferred_arch}" "linux" TARGET_CCFLAGS="$OPTS_GCC" TARGET_LDFLAGS="$TARGET_LDFLAGS -static" TARGET_LIBS="-lstdc++" - TARGET_TARBALL="linux-${inferred_arch}-${TARGET_NASM_FMT}" + TARGET_TARBALL="linux-${inferred_arch}-${TARGET_YASM_FMT}" TARGET_DOCFILES="docs/readme.linux" #platform specific docfile TARGET_USES_GNUMAKE="yes" add_sources "linux" "x86_64" "" - #TARGET_CCFLAGS="$TARGET_CCFLAGS -DHAVE_POSIX_THREADS" - #TARGET_LIBS="$TARGET_LIBS -lpthread" - #TARGET_TARBALL="${TARGET_TARBALL}-pthreads" - ;; ###### NeXT (x86, m68k, sparc, hppa) @@ -2736,6 +2751,21 @@ else TARGET_NASMFLAGS="$TARGET_NASMFLAGS -d__AOUT__" #for both aout and aoutb fi +# +# Finalize the YASM compilation options. +# +if [ -z "$TARGET_YASM_FMT" ]; then + TARGET_YASM_FMT="elf" +fi +TARGET_YASMFLAGS="-f $TARGET_YASM_FMT -m amd64 -p nasm -r nasm" +#if [ "$TARGET_YASM_FMT" = "elf" ]; then +# TARGET_YASMFLAGS="$TARGET_YASMFLAGS -d__ELF__" +#elif [ "$TARGET_YASM_FMT" = "obj" ]; then +# TARGET_YASMFLAGS="$TARGET_YASMFLAGS -d__OMF__" +#else +# TARGET_YASMFLAGS="$TARGET_YASMFLAGS -d__AOUT__" #for both aout and aoutb +#fi + # # Finalize the LD that will be used. @@ -2811,6 +2841,17 @@ if [ -n "${TARGET_ADDNASMS}" ]; then TARGET_SRCOBJLIST="${TARGET_SRCOBJLIST} $target ${TARGETOBJECT}" done fi +if [ -n "${TARGET_ADDYASMS}" ]; then + echo "Scanning output YASM dependencies..." + TARGET_SRCOBJLIST="${TARGET_SRCOBJLIST} yasm" + for target in ${TARGET_ADDYASMS}; do + TARGETOBJECT=`basename $target .asm` + TARGETOBJECT=output/`basename $target .asm`.o + echo " $target -> $TARGETOBJECT" + TARGET_ALLOBJS="${TARGET_ALLOBJS} ${TARGETOBJECT}" + TARGET_SRCOBJLIST="${TARGET_SRCOBJLIST} $target ${TARGETOBJECT}" + done +fi if [ -n "${TARGET_ADDSRCS}" ]; then echo "Scanning additional C/C++ dependencies..." TARGET_SRCOBJLIST="${TARGET_SRCOBJLIST} cc" @@ -2863,6 +2904,8 @@ echo "AS = ${TARGET_AS}" >> Makefile echo "ASFLAGS = ${TARGET_ASFLAGS}" >> Makefile echo "NASM = ${TARGET_NASM}" >> Makefile echo "NASMFLAGS = ${TARGET_NASMFLAGS}" >> Makefile +echo "YASM = ${TARGET_YASM}" >> Makefile +echo "YASMFLAGS = ${TARGET_YASMFLAGS}" >> Makefile echo "STRIP = ${TARGET_STRIP}" >> Makefile echo "ALLOBJS = ${TARGET_ALLOBJS}" >> Makefile echo "ADDOBJS = ${TARGET_ADDOBJS}" >> Makefile @@ -2939,7 +2982,7 @@ if [ -n "$TARGET_TARBALL" ]; then echo " cp plat/riscos/package/*,??? $FULLTARNAME" >> Makefile echo " mkdir -p $FULLTARNAME/!System/310/Modules" >> Makefile echo " cp plat/riscos/package/!System/310/Modules/*,??? $FULLTARNAME/!System/310/Modules" >> Makefile - echo " /home/peter/gccsdk-2.95.4-v2/cross/bin/zip -r -, $FULLTARNAME.zip $FULLTARNAME" >> Makefile + echo " /home/peter/gccsdk-32/cross/bin/zip -r -, $FULLTARNAME.zip $FULLTARNAME" >> Makefile echo " rm -rf $FULLTARNAME" >> Makefile else echo "Warning: Unknown TARGET_ARCTYPE ${TARGET_ARCTYPE}" @@ -3035,6 +3078,8 @@ if [ -n "${TARGET_SRCOBJLIST}" ]; then TARGETTYP="$target" elif [ "${target}" = "nasm" ]; then TARGETTYP="$target" + elif [ "${target}" = "yasm" ]; then + TARGETTYP="$target" # ------------------------------------ elif [ "${TARGETSRC}X" = "X" ]; then TARGETSRC="$target" @@ -3149,6 +3194,24 @@ if [ -n "${TARGET_SRCOBJLIST}" ]; then echo "" >> Makefile TARGETSRC="" # ------------------------------------ + elif [ "${TARGETTYP}" = "yasm" ]; then + dirlist=`echo "${TARGETSRC}"|tr '/' ' '` + incswitch="" + prevdir="" + for subdir in $dirlist; do + if [ -n "$prevdir" ]; then + incswitch="$incswitch$prevdir/" + fi + prevdir="$subdir" + done + if [ -d "$incswitch" ]; then + incswitch="-I $incswitch" + fi + echo "$target: ${TARGETSRC}" >> Makefile + echo " \${YASM} \${YASMFLAGS} ${incswitch} ${TARGETSRC} -o $target" >> Makefile + echo "" >> Makefile + TARGETSRC="" + # ------------------------------------ else echo "Unknown target type ${TARGETTYP}" exit 1 diff --git a/docs/CHANGES.txt b/docs/CHANGES.txt index f715fda0f..c699701c1 100644 --- a/docs/CHANGES.txt +++ b/docs/CHANGES.txt @@ -21,7 +21,7 @@ Version bump guide: `------------- Denotes a client rewrite. ========================================================================== -Version change log: $Id: CHANGES.txt,v 1.16 2003/09/12 23:58:17 mweiser Exp $ +Version change log: $Id: CHANGES.txt,v 1.17 2003/11/01 14:20:14 mweiser Exp $ ========================================================================== 2.9000 @@ -34,6 +34,8 @@ Version change log: $Id: CHANGES.txt,v 1.16 2003/09/12 23:58:17 mweiser Exp $ new: macosx: use IOHWSensor to read CPU temperature (#3334) imp: some: allow for fractional temperature thresholds (#3315) chg: x86: made Pentium M preselection like Pentium 4 (#3323) + imp: aix: include assembler cores on ppc + fix: aix: smp: threads now get correctly spread over all cpus 2.9006-485 new: decunix: cpu temperature detection new: macosx: use AppleCPUthermo to read CPU temperature (#3315) diff --git a/docs/readme.amiga b/docs/readme.amiga index 762452af9..1a7bdc37a 100644 --- a/docs/readme.amiga +++ b/docs/readme.amiga @@ -1,7 +1,7 @@ distributed.net client for AmigaOS (68k/PPC) Released by Oliver Roberts - Document revision $Id: readme.amiga,v 1.11 2003/09/12 22:29:26 mweiser Exp $ + Document revision $Id: readme.amiga,v 1.12 2003/11/01 14:20:14 mweiser Exp $ Welcome to the distributed.net client. diff --git a/docs/readme.riscos b/docs/readme.riscos index f98b17c3a..16a950720 100644 --- a/docs/readme.riscos +++ b/docs/readme.riscos @@ -1,7 +1,7 @@ distributed.net client for RISC OS v3.10 or later. - Released by Peter Teichmann - Document revision $Id: readme.riscos,v 1.5 2003/09/12 22:29:26 mweiser Exp $ + Released by Peter Teichmann + Document revision $Id: readme.riscos,v 1.6 2003/11/01 14:20:14 mweiser Exp $ Welcome to the distributed.net client. @@ -10,36 +10,52 @@ http://www.distributed.net/FAQ for non-platform-specific documentation. 1.0 Getting started - 2.0 RISC OS specific notes + 2.0 Several notes - 1.0 Getting started ------------------------------------------------ + 1.0 Getting started ------------------------------------------------------- - Just unpack the client in a directory of your choice. Copy the - included !System directory over your !System directory, this will - install the SharedUnixLib module which is needed by the client. - Now start the client using the file "!Run", or start it manually - in a task window. + Just unpack the client in a directory of your choice. Install the + included !System update, which contains the SharedUnixLibrary 1.02 + and a recent FPEmulator for machines running RISC OS 3.1. On a machine + with a recent !Boot application, start this application, select "System" + and follow the instructions. On older machines you need install these + modules manually. + + Since the client originates from the Unix world, it is a command line + program which is controlled by command line options. If you like to + make use of all the opportunities it offers, you have to run it + manually using the CLI, be it a taskwindow or singletasking. However, + for the most common tasks there are obey files supplied: + + !Bench benchmarks the client in singletasking mode + !Config starts the client's configuration dialog + !Help shows the client's help + !Run starts the client in a taskwindow + !RunQuiet starts the client without any output in background + !RunSingle starts the client in singletasking mode + !Stop stops the client if it was started without output + !Test tests the cores for compliance + !Update starts a buffer update + + Usually you will not need anything else than these obey files. + Start the client using the file "!Run". If you have never run the client before, it will initiate the menu-driven configuration. Save and quit when done, the configuration file "dnetc/ini" will be saved in the same directory as the client. Then, simply restart the client. From that point on it will use the saved configuration. - + The configuration options are fairly self-explanatory and can be run - at any time by starting the client with the '-config' option. - A list of command line options is available by starting the client - with '-help'. You can also start the file "!Config" or "!Help" - instead. + at any time by starting the file "!Config" or starting the client with + the '-config' option. A list of command line options is available by + starting "!Help" or starting the client with '-help'. A "Complete Step-by-Step Guide to Running Your First Client" is available at http://distributed.net/FAQ/ - 2.0 Notes: --------------------------------------------------------- + 2.0 Several notes --------------------------------------------------------- - The client for RISC OS requires the Acorn Internet module, or a - compatible TCP/IP stack (eg FreeNet). - If you want to run the client quiet, start "!RunQuiet" instead. To stop a running client, press the "Esc" key in its task window. If you have started it quiet, start the file "!Stop". This will @@ -47,7 +63,8 @@ that this method may take up to 30 seconds. This method of stopping the client will only work if you have configured the exit flag file name "exitrc5/now". This is already done for you in - the supplied "dnetc/ini" file. + the supplied "dnetc/ini" file by default, but you should take care + not to change this option. If you want to run the client automatically when the computer starts, you can not simply copy "!Run" or "!RunQuiet" to your @@ -60,7 +77,7 @@ the client to use a checkpoint file. That will make the client save its state every couple of minutes, so that it can be recovered if the client is killed by accident. - + This version does not support the x86 coprocessor card. This version is not compatible with the previously released diff --git a/docs/readme.vms b/docs/readme.vms index c5a4a3238..d3ddf881c 100644 --- a/docs/readme.vms +++ b/docs/readme.vms @@ -1,77 +1,100 @@ - distributed.net client for VMS/OpenVMS. - Released by David Sowder - Document revision $Id: readme.vms,v 1.4 2000/07/11 02:38:54 mfeiri Exp $ + distributed.net client for OpenVMS. + Released by Jason Brady + Document revision $Id: readme.vms,v 1.5 2003/11/01 14:20:14 mweiser Exp $ + + Welcome to the distributed.net client! - - Welcome to the distributed.net client. - - This document covers information specific to the client for VMS/OpenVMS. - Refer to other enclosed documentation or browse the online FAQ at - - http://www.distributed.net/FAQ for non-platform-specific documentation. + This document covers information specific to the client for OpenVMS on + the Alpha platform. Non-platform-specific information can be found in + the online FAQ at http://www.distributed.net/FAQ. 1.0 Getting started - 2.0 OS/Platform specific notes - - This is a rather simple readme. The OpenVMS client currently - only runs on the Alpha architecture. - - 1.0 Getting started ------------------------------------------------ + 2.0 Platform-specific notes - - Just unzip the client's archive preferrably with UNZIP running on - your VMS machine as transferring from a non-VMS machine may be - problematic. + 1.0 Getting Started ------------------------------------------------------- + Create a directory for a single instance of the client: + $CREATE/DIR SYS$SYSDEVICE:[DNETC] + $SET DEFAULT SYS$SYSDEVICE:[DNETC] - Type - @GO-VMS - to start. You'll only need to do this the first time you run an - executable in a particular login session, once you've told it the right - options for your environment. The first time you run it, GO-VMS will ask - youa few questions about your network stack, your processor and which way - to get your executable. If you have difficulties with a particular set of - options, try a different set of options by typing @GO-VMS RECHOOSE + Copy the distribution ZIP file to the newly-created directory and unzip. + The UNZIP should be performed on the OpenVMS system because transferring + unzipped files from other platforms, especially binary executables, can + be problematic. - If you have never run the client before, it will initiate the + GO-VMS.COM assumes the above device and directory specifications. Modify + the command procedure if an alternate location is chosen. + + First start the client interactively: + $@GO-VMS INTER "-config" - menu-driven configuration. Save and quit when done, the + To quote the Distributed.Net documentation: + "If you have never run the client before, it will initiate + the menu-driven configuration. Save and quit when done; + the configuration file will be saved in the same directory + as the client. Then restart the client. From that point + on it will use the saved configuration. - configuration file will be saved in the same directory as the + "The configuration options are fairly self-explanatory and + can be invoked at any time by starting the client with the + '-config' option. A list of command line options is available + by starting the client with '-help'. You only need to do this + the first time you run an executable in order to specify the + options for your environment." - client. Then, simply restart the client. From that point on it will + After restarting the client and confirming that it connects, retrieves + work units and starts processing, type CTRL-C. The client recognizes + a break request and terminates. - use the saved configuration. + Note: The client can also be run without the go-vms.com DCL "wrapper" + by defining it as a foreign command: + $DNETC :== $SYS$SYSDEVICE:[DNETC]DNETC.EXE + Then invoking it with or without command line options: + $DNETC [no command line options] + $DNETC "-update" [fetch and flush buffers] - + The GO-VMS.COM procedure can be used to run the client as a batch job + if you do not wish to tie up an interactive session. To do so, create + the DNETC_BATCH batch queue: - The configuration options are fairly self-explanatory and can be run + $INIT/QUEUE/START/BASE_PRIORITY=3/JOB_LIMIT=1 DNETC_BATCH/BATCH - at any time by starting the client with the '-config' option. + Then invoke the command procedure as shown. By specifying a checkpoint + file (.e.g, dnetc.ckp) the client will save its state every couple of + minutes and avoid data loss when stopped. As with interactive mode, + command line options can be specified inside double-quotes. Examples: - A list of command line options is available by starting the client + $@GO-VMS BATCH [no command line options] + $@GO-VMS BATCH "-n 1" [stop after one packet processed] - with '-help'. + Be sure to stop the client before shutting down the system by issuing: + $STOP/ID=processid + OpenVMS is very much an SMP (symmetric multiprocessing) operating system. + However, this client wasn't built to support SMP due to the porting hard- + ware's limitations. For now, run multiple client instances if your system + has more than one CPU (you need to create a separate directory for each + instance and change the batch queue's job limit accordingly). - 2.0 Notes: --------------------------------------------------------- + 2.0 Platform-Specific Notes ---------------------------------------------- Changes: - 12/22/97 - Added UCX and nonet support - 12/22/97 - Added linking to local shared libraries - 12/22/97 - Reworked go-vms.com for menu driven executable selection - 12/24/97 - Added forgotten multinet.opt file and cleaned up go-vms.com + 10/15/2003 - Rewrote David Sowder's original readme.vms along with + command procedures make-vms.com and go-vms.com. + The OpenVMS client currently runs on the Alpha architecture. VAX + systems are not supported. - If you have any problems or questions, Email me at the address above. - I'm working on a VAX port, but it's a very much a "when I get the time - kind of thing" so please be patient. If anyone could share the source - to a C++ program that uses TCP/IP networking and how to properly compile - it under GXX on a VAX, I would appreciate it. Email me at the above - address if you have such information. + This client was ported and tested on an Alphaserver 300 4/266 (an EV4 + processor) running OpenVMS 7.3-1, TCPIP v5.3 and CXX v6.5. + Alternate TCPIP stacks such as Multinet and TCPWare are not supported + due to lack of available machines upon which to port and test a client. + + The same holds true for an SMP capable multi-threaded version as well + as versions optimized for other Alpha processors (EV5, etc.). diff --git a/docs/readme.w32 b/docs/readme.w32 index 4fdb034bb..340dc6139 100644 --- a/docs/readme.w32 +++ b/docs/readme.w32 @@ -1,6 +1,6 @@ distributed.net client for Win32 (Win9x/WinNT/Win2K/WinXP/Win32s) - document revision $Id: readme.w32,v 1.9 2003/09/12 22:29:26 mweiser Exp $ + document revision $Id: readme.w32,v 1.10 2003/11/01 14:20:14 mweiser Exp $ Welcome to the distributed.net client. diff --git a/go-vms.com b/go-vms.com index 4cf93497b..ee0debdee 100644 --- a/go-vms.com +++ b/go-vms.com @@ -1,106 +1,90 @@ -$!============================================================================== -$! -$! Program: go-vms.com -$! Created: 06/19/97 -$! Author: David Sowder (davids@cosmic.swau.edu) -$! -$! Program Summary: A DCL wrapper for RC5 on VMS -$! -$! Modifications: -$! xx/xx/xx Who Description of Change -$! 12/14/97 David Sowder Added menu for compile and link options -$! -$!============================================================================== -$! -$ IF P1 .EQS "RECHOOSE" THEN GOTO BUILD -$ START: -$ RC564_1 = F$SEARCH( "RC564.EXE;" ) -$ IF RC564_1 .EQS. "" THEN GOTO BUILD -$ WRITE SYS$OUTPUT "You can now use the 'RC564' command from the $ prompt" -$ RC564 == "$''RC564_1'" -$ IF P1 .EQS "RECHOOSE" THEN GOTO DONE -$ SET PROCESS/PRIORITY=0 -$ DEFINE/USER SYS$INPUT TT: -$ RC564 'P1 -$ SET PROCESS/PRIORITY=4 -$ GOTO DONE -$! -$ QUIT: -$ WRITE SYS$OUTPUT "RC5 startup terminated abnormally." -$ DONE: -$ EXIT -$! -$ BUILD: -$ NET :== "" -$ NETNAM :== "" -$ PROCOP :== "" -$ LNK :== "" -$! -$ WRITE SYS$OUTPUT "RC564.EXE not found. Needing to link one." -$ DEFINE/NOLOG/USER SYS$INPUT TT: -$ WRITE SYS$OUTPUT "1 - Multinet" -$ WRITE SYS$OUTPUT "2 - UCX" -$ WRITE SYS$OUTPUT "3 - No Network" -$ WRITE SYS$OUTPUT "" -$ READ/PROMPT="Enter desired network option: " SYS$COMMAND CMD -$ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT "" -$ IF CMD .EQ. 1 THEN NET :== "MULTINET" -$ IF CMD .EQ. 1 THEN NETNAM :== "MULTINET" -$ IF CMD .EQ. 2 THEN NET :== "__VMS_UCX__" -$ IF CMD .EQ. 2 THEN NETNAM :== "UCX" -$ IF CMD .EQ. 3 THEN NET :== "NONETWORK" -$ IF CMD .EQ. 3 THEN NETNAM :== "NONET" -$ IF NET .EQS. "" THEN GOTO QUIT -$! -$ DEFINE/NOLOG/USER SYS$INPUT TT: -$ WRITE SYS$OUTPUT "1 - EV4" -$ WRITE SYS$OUTPUT "2 - EV5" -$ WRITE SYS$OUTPUT "" -$ READ/PROMPT="Enter desired processor option: " SYS$COMMAND CMD -$ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT "" -$ IF CMD .EQ. 1 THEN PROCOP :== "EV4" -$ IF CMD .EQ. 2 THEN PROCOP :== "EV5" -$ IF PROCOP .EQS. "" THEN GOTO QUIT -$! -$ DEFINE/NOLOG/USER SYS$INPUT TT: -$ WRITE SYS$OUTPUT "1 - Use Executable" -$ WRITE SYS$OUTPUT "2 - Link locally to solve shared library problems" -$ WRITE SYS$OUTPUT "" -$ READ/PROMPT="Enter desired link option: " SYS$COMMAND CMD -$ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT "" -$ IF CMD .EQ. 1 THEN LNK :== "EXEC" -$ IF CMD .EQ. 2 THEN LNK :== "LIB" -$ IF LNK .EQS. "" THEN GOTO QUIT -$! -$ IF LNK .EQS. "LIB" THEN GOTO MAKE_LIBRARY -$ COPY RC564-'PROCOP'-'NETNAM'.EXE RC564.EXE -$ PURGE RC564.EXE -$ GOTO START -$! -$ MAKE_LIBRARY: -$ IF NET .EQS. "MULTINET" THEN GOTO MAKE_LIBRARY_MULTINET -$ LIBRARY/EXTRACT=RC5/OUTPUT=RC5.OBJ RC564-'PROCOP'-'NETNAM' -$ LINK/EXECUTABLE=RC564 RC5,RC564-'PROCOP'-'NETNAM'/LIBRARY -$ PURGE RC564.EXE -$ GOTO START -$! -$ MAKE_LIBRARY_MULTINET: -$ LIBRARY/EXTRACT=RC5/OUTPUT=RC5.OBJ RC564-'PROCOP'-'NETNAM' -$ LIBRARY/EXTRACT=CLICONFIG/OUTPUT=CLICONFIG.OBJ RC564-'PROCOP'-'NETNAM' -$ LIBRARY/EXTRACT=CLIENT/OUTPUT=CLIENT.OBJ RC564-'PROCOP'-'NETNAM' -$ LIBRARY/EXTRACT=AUTOBUFF/OUTPUT=AUTOBUFF.OBJ RC564-'PROCOP'-'NETNAM' -$ LIBRARY/EXTRACT=INIREAD/OUTPUT=INIREAD.OBJ RC564-'PROCOP'-'NETNAM' -$ LIBRARY/EXTRACT=NETWORK/OUTPUT=NETWORK.OBJ RC564-'PROCOP'-'NETNAM' -$ LIBRARY/EXTRACT=SCRAM/OUTPUT=SCRAM.OBJ RC564-'PROCOP'-'NETNAM' -$ LIBRARY/EXTRACT=BUFFWORK/OUTPUT=BUFFWORK.OBJ RC564-'PROCOP'-'NETNAM' -$ LIBRARY/EXTRACT=MAIL/OUTPUT=MAIL.OBJ RC564-'PROCOP'-'NETNAM' -$ LINK/EXECUTABLE=RC564-'PROCOP'-'NETNAM' - - RC5,CLICONFIG,CLIENT,AUTOBUFF,INIREAD,NETWORK,SCRAM,BUFFWORK,MAIL, - - MULTINET.OPT/OPT -$ COPY RC564-'PROCOP'-'NETNAM'.EXE RC564.EXE -$ PURGE RC564.EXE -$ GOTO START - +$ v = f$verify(0) +$!=========================================================================== +$! Procedure: go-vms.com +$! Created: 15-Oct-2003 +$! Author: Jason Brady +$! +$! Purpose: Procedure for running the DNETC client program on the OpenVMS +$! platform. See instructions in file readme.vms. +$! +$! Modifications: +$! 10/15/2003 Jason Brady Re-wrote David Sowder's RC5 DCL wrapper +$! procedure for the current dnetc client. +$!=========================================================================== +$! +$! Note: Before executing this command procedure, modify the following +$! three statements (application directory, client executable, +$! batch queue name, batch log file name) if necessary. +$! +$ appdir = "SYS$SYSDEVICE:[DNETC]" +$ execname = "DNETC.EXE" +$ logname = "DNETC.LOG" +$ queuename = "DNETC_BATCH" +$ jobname = "DNETC_CLIENT" +$! +$! Command procedure parameters are as follows: +$! P1 - INTER for interactive, BATCH for batch. Default is INTER. +$! P2 - Command line options for the client enclosed in double quotes. +$! +$! Initialization +$! +$ on control_y then goto error_exit +$ on error then goto error_exit +$ on warning then continue +$! +$ thisproc = f$environment("procedure") +$ client :== $'appdir''execname +$ display = "WRITE SYS$OUTPUT" +$! +$! Set directory and branch to appropriate routine +$! +$ set default 'appdir +$! +$ if "''p1'" .eqs. "" then goto inter_proc +$ if "''p1'" .eqs. "RUN" then goto run_proc +$ if "''p1'" .eqs. "BATCH" then goto batch_proc +$ if "''p1'" .eqs. "INTER" then goto inter_proc +$ display " " +$ display "Invalid option. Must be INTER or BATCH." +$ goto success_exit +$! +$! Routine to run client in batch queue +$! +$batch_proc: +$ if f$search("''logname'") .nes. "" then purge/keep=2 'logname +$ submit/queue='queuename' 'thisproc' - + /param=("RUN","''p2'") - + /log='appdir''logname' - + /name='jobname - + /norestart +$ goto success_exit +$! +$! Routine to run the client interactively +$! +$inter_proc: +$ define sys$input sys$command +$ client 'p2 +$ goto success_exit +$! +$! Routine to run the client executable inside batch job +$! +$run_proc: +$ set process/name='jobname +$ client 'p2 +$ goto success_exit +$! +$! Exit Routines +$! +$ success_exit: +$ exit_status = 1 +$ goto exit_proc +$! +$ error_exit: +$ display " " +$ display "Procedure error occurred." +$! +$ exit_proc: +$ set noon +$ v = f$verify(v) +$ exit exit_status +$! diff --git a/make-vms.com b/make-vms.com index 83771636c..7baf123d5 100644 --- a/make-vms.com +++ b/make-vms.com @@ -1,164 +1,106 @@ -$!============================================================================== -$! -$! Program: make-vms.com -$! Created: 06/19/97 -$! Author: David Sowder (davids@cosmic.swau.edu) -$! -$! Program Summary: A "make" for RC5 on VMS -$! -$! Modifications: -$! xx/xx/xx Who Description of Change -$! 12/14/97 David Sowder Added menu for compile and link options -$! -$!============================================================================== -$! -$ CYCLECNTRL :== "" -$ IF P1 .EQS. "MAKEALL" THEN CYCLECNTRL :== "0" -$ IF P1 .NES. "MAKEALL" THEN GOTO NORMALOPS -$! -$ CYCLETOP: -$! -$ IF CYCLECNTRL .EQS. "6" THEN GOTO SUPERDONE -$ IF CYCLECNTRL .EQS. "5" THEN CYCLECNTRL :== "6" -$ IF CYCLECNTRL .EQS. "4" THEN CYCLECNTRL :== "5" -$ IF CYCLECNTRL .EQS. "3" THEN CYCLECNTRL :== "4" -$ IF CYCLECNTRL .EQS. "2" THEN CYCLECNTRL :== "3" -$ IF CYCLECNTRL .EQS. "1" THEN CYCLECNTRL :== "2" -$ IF CYCLECNTRL .EQS. "0" THEN CYCLECNTRL :== "1" -$! -$ LNK :== "BOTH" -$ IF CYCLECNTRL .EQS. "1" THEN NET :== "MULTINET" -$ IF CYCLECNTRL .EQS. "1" THEN NETNAM :== "MULTINET" -$ IF CYCLECNTRL .EQS. "1" THEN PROCOP :== "EV4" -$ IF CYCLECNTRL .EQS. "2" THEN NET :== "MULTINET" -$ IF CYCLECNTRL .EQS. "2" THEN NETNAM :== "MULTINET" -$ IF CYCLECNTRL .EQS. "2" THEN PROCOP :== "EV5" -$ IF CYCLECNTRL .EQS. "3" THEN NET :== "__VMS_UCX__" -$ IF CYCLECNTRL .EQS. "3" THEN NETNAM :== "UCX" -$ IF CYCLECNTRL .EQS. "3" THEN PROCOP :== "EV4" -$ IF CYCLECNTRL .EQS. "4" THEN NET :== "__VMS_UCX__" -$ IF CYCLECNTRL .EQS. "4" THEN NETNAM :== "UCX" -$ IF CYCLECNTRL .EQS. "4" THEN PROCOP :== "EV5" -$! IF CYCLECNTRL .EQS. "5" THEN NET :== "NONETWORK" -$! IF CYCLECNTRL .EQS. "5" THEN NETNAM :== "NONET" -$! IF CYCLECNTRL .EQS. "5" THEN PROCOP :== "EV4" -$! IF CYCLECNTRL .EQS. "6" THEN NET :== "NONETWORK" -$! IF CYCLECNTRL .EQS. "6" THEN NETNAM :== "NONET" -$! IF CYCLECNTRL .EQS. "6" THEN PROCOP :== "EV5" -$ GOTO COMPILE -$! -$ NORMALOPS: -$ NET :== "" -$ NETNAM :== "" -$ PROCOP :== "" -$ LNK :== "" -$! -$ DEFINE/NOLOG/USER SYS$INPUT TT: -$ WRITE SYS$OUTPUT "1 - Multinet" -$ WRITE SYS$OUTPUT "2 - UCX" -$! WRITE SYS$OUTPUT "3 - No Network" -$ WRITE SYS$OUTPUT "" -$ READ/PROMPT="Enter desired network option: " SYS$COMMAND CMD -$ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT "" -$ IF CMD .EQ. 1 THEN NET :== "MULTINET" -$ IF CMD .EQ. 1 THEN NETNAM :== "MULTINET" -$ IF CMD .EQ. 2 THEN NET :== "__VMS_UCX__" -$ IF CMD .EQ. 2 THEN NETNAM :== "UCX" -$! IF CMD .EQ. 3 THEN NET :== "NONETWORK" -$! IF CMD .EQ. 3 THEN NETNAM :== "NONET" -$ IF NET .EQS. "" THEN GOTO QUIT -$! -$ DEFINE/NOLOG/USER SYS$INPUT TT: -$ WRITE SYS$OUTPUT "1 - EV4" -$ WRITE SYS$OUTPUT "2 - EV5" -$ WRITE SYS$OUTPUT "3 - Current Host" -$ WRITE SYS$OUTPUT "" -$ READ/PROMPT="Enter desired processor option: " SYS$COMMAND CMD -$ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT "" -$ IF CMD .EQ. 1 THEN PROCOP :== "EV4" -$ IF CMD .EQ. 2 THEN PROCOP :== "EV5" -$ IF CMD .EQ. 3 THEN PROCOP :== "HOST" -$ IF PROCOP .EQS. "" THEN GOTO QUIT -$! -$ DEFINE/NOLOG/USER SYS$INPUT TT: -$ WRITE SYS$OUTPUT "1 - Make Executable" -$ WRITE SYS$OUTPUT "2 - Make Library" -$ WRITE SYS$OUTPUT "3 - Make Both" -$ WRITE SYS$OUTPUT "" -$ READ/PROMPT="Enter desired link option: " SYS$COMMAND CMD -$ WRITE SYS$OUTPUT "" -$ WRITE SYS$OUTPUT "" -$ IF CMD .EQ. 1 THEN LNK :== "EXEC" -$ IF CMD .EQ. 2 THEN LNK :== "LIB" -$ IF CMD .EQ. 3 THEN LNK :== "BOTH" -$ IF LNK .EQS. "" THEN GOTO QUIT -$ GOTO COMPILE -$! -$ QUIT: -$ WRITE SYS$OUTPUT "Compile terminated abnormally." -$ DONE: -$ IF CYCLECNTRL .NES. "" THEN GOTO CYCLETOP -$ SUPERDONE: -$ EXIT -$! -$ COMPILE: -$! Some versions of DEC C++ older than 5.0 may not support the TUNE -$! optimization option. Remove the TUNE='PROCOP' portion from the -$! /OPTIMIZE= switch if you experience difficulties. -$! -$ MU SHOW/VER -$ CXX/STANDARD=MS/VERSION/NOOBJECT NL: -$ Write sys$output "Compiling..." -$ IF F$GETSYI( "ARCH_NAME" ) .NES. "Alpha" THEN GOTO NOT_ALPHA_COMPILE -$ CXX/STANDARD=MS/PREFIX=ALL/DEBUG=NONE/DEFINE='NET' - - /OPTIMIZE=(LEVEL=4,UNROLL=50,TUNE='PROCOP') - - CLIENT.CPP,INIREAD.CPP -$ CXX/STANDARD=MS/PREFIX=ALL/DEBUG=NONE/DEFINE='NET' - - /OPTIMIZE=(LEVEL=4,INLINE=ALL,UNROLL=50,TUNE='PROCOP') - - CLICONFIG.CPP,PROBLEM.CPP,AUTOBUFF.CPP,NETWORK.CPP,SCRAM.CPP, - - BUFFWORK.CPP,MAIL.CPP -$ GOTO LINK -$ NOT_ALPHA_COMPILE: -$! If we're still executing here, it's assumed the architecture is VAX -$! VAX architecture not currently supported -$! CC/DECC - -$! /NOOPTIMIZE - -$! CLIENT -$! CC/DECC - -$! /OPTIMIZE=(DISJOINT,INLINE) - -$! COMMON,CLIOPS -$! -$ LINK: -$ Write sys$output "Linking..." -$ IF LNK .EQS. "BOTH" THEN GOTO MAKE_LIBRARY -$ IF LNK .EQS. "LIB" THEN GOTO MAKE_LIBRARY -$ LINKPASSTWOTOP: -$ IF NET .EQS. "MULTINET" THEN GOTO LINK_MULTINET -$ IF NET .EQS. "__VMS_UCX__" THEN GOTO LINK_UCX -$ IF NET .EQS. "NONETWORK" THEN GOTO LINK_NONETWORK -$ GOTO QUIT -$! -$ MAKE_LIBRARY: -$ LIBRARY/CREATE RC5DES-'PROCOP'-'NETNAM' -$ LIBRARY/OBJECT/INSERT RC5DES-'PROCOP'-'NETNAM' PROBLEM.OBJ,CLICONFIG.OBJ, - - CLIENT.OBJ,AUTOBUFF.OBJ,INIREAD.OBJ,NETWORK.OBJ,SCRAM.OBJ, - - BUFFWORK.OBJ,MAIL.OBJ -$ PURGE RC5*.OBJ -$ PURGE RC5DES*.OLB -$ IF LNK .EQS. "BOTH" THEN GOTO LINKPASSTWOTOP -$ GOTO DONE -$! -$ LINK_UCX: -$ LINK_NONETWORK: -$ LINK/NOTRACEBACK/EXECUTABLE=RC5DES-'PROCOP'-'NETNAM' - - PROBLEM,CLICONFIG,CLIENT,AUTOBUFF,INIREAD,NETWORK,SCRAM,BUFFWORK,MAIL -$ GOTO DONE -$! -$ LINK_MULTINET: -$ LINK/NOTRACEBACK/EXECUTABLE=RC5DES-'PROCOP'-'NETNAM' - - PROBLEM,CLICONFIG,CLIENT,AUTOBUFF,INIREAD,NETWORK,SCRAM,BUFFWORK,MAIL, - - MULTINET.OPT/OPT -$ GOTO DONE - +$ v = f$verify(0) +$!=========================================================================== +$! Procedure: make-vms.com +$! Created: 15-Oct-2003 +$! Author: Jason Brady +$! +$! Purpose: A utility for compiling and linking DNETC client modules on +$! the OpenVMS platform. See instructions in file readme.vms. +$! +$! Modifications: +$! 10/15/2003 Jason Brady Re-wrote David Sowder's RC5 procedure for +$! the current dnetc client. +$!=========================================================================== +$! +$! Note: Before executing this command procedure, modify the following +$! statements (application and source module directories, client +$! executable name) as well as the compile and link statements +$! (modules, defines) if necessary. +$! +$ appdir = "SYS$SYSDEVICE:[DNETC]" +$ moddir = "SYS$SYSDEVICE:[DNETC.MODULES]" +$ execname = "DNETC.EXE" +$! +$! Initialization +$! +$ on control_y then goto error_exit +$ on error then goto error_exit +$ on warning then continue +$! +$ display = "WRITE SYS$OUTPUT" +$ set default 'appdir +$! +$ type/page nl: +$ display "DNETC Client Module Compile and Link Procedure" +$ show time +$ display " " +$! +$! Compile Modules +$! +$ set default 'moddir +$ display "Compiling modules..." +$ cxx/standard=ms/prefix=all - + /define=(HAVE_RC5_72_CORES,HAVE_OGR_CORES) - + /optimize=(level=4,inline=all,unroll=50,tune=host) - + base64.cpp,bench.cpp,buffbase.cpp,buffpriv.cpp, - + buffupd.cpp,checkpt.cpp,clicdata.cpp,client.cpp, - + clievent.cpp,cliident.cpp,clirun.cpp,clitime.cpp, - + cmdline.cpp,confmenu.cpp,confopt.cpp,confrwv.cpp, - + console.cpp,convdes.cpp,coremem.cpp,core_csc.cpp, - + core_des.cpp,core_ogr.cpp,core_r72.cpp,core_rc5.cpp, - + cpucheck.cpp,disphelp.cpp,iniread.cpp,logstuff.cpp, - + lurk.cpp,mail.cpp,memfile.cpp,modereq.cpp,netbase.cpp, - + netconn.cpp,ogr.cpp,ogr_dat.cpp,ogr_sup.cpp,pathwork.cpp, - + pollsys.cpp,probfill.cpp,problem.cpp,probman.cpp, - + projdata.cpp,random.cpp,r72ansi1.cpp,r72ansi2.cpp, - + r72ansi4.cpp,r72-ref.cpp,scram.cpp,selcore.cpp, - + selftest.cpp,setprio.cpp,threadcd.cpp,triggers.cpp, - + util.cpp +$! +$! Link Modules +$! +$ display " " +$ display "Linking modules..." +$ cxxlink/executable='appdir''execname - + base64.obj,bench.obj,buffbase.obj,buffpriv.obj, - + buffupd.obj,checkpt.obj,clicdata.obj,client.obj, - + clievent.obj,cliident.obj,clirun.obj,clitime.obj, - + cmdline.obj,confmenu.obj,confopt.obj,confrwv.obj, - + console.obj,convdes.obj,coremem.obj,core_csc.obj, - + core_des.obj,core_ogr.obj,core_r72.obj,core_rc5.obj, - + cpucheck.obj,disphelp.obj,iniread.obj,logstuff.obj, - + lurk.obj,mail.obj,memfile.obj,modereq.obj,netbase.obj, - + netconn.obj,ogr.obj,ogr_dat.obj,ogr_sup.obj,pathwork.obj, - + pollsys.obj,probfill.obj,problem.obj,probman.obj, - + projdata.obj,random.obj,r72ansi1.obj,r72ansi2.obj, - + r72ansi4.obj,r72-ref.obj,scram.obj,selcore.obj, - + selftest.obj,setprio.obj,threadcd.obj,triggers.obj, - + util.obj +$! +$! Purge old file versions +$! +$ display " " +$ display "Purging old file versions..." +$ purge *.cpp +$ purge *.obj +$! +$! Exit Routines +$! +$ success_exit: +$ exit_status = 1 +$ goto exit_proc +$! +$ error_exit: +$ display " " +$ display "Procedure error occurred." +$! +$ exit_proc: +$ set default 'appdir +$ display " " +$ display "End of compile and link procedure." +$ display " " +$ show time +$ set noon +$ v = f$verify(v) +$ exit exit_status +$! diff --git a/makefile.bcc b/makefile.bcc index 1c0571d5e..ebaa8ca12 100644 --- a/makefile.bcc +++ b/makefile.bcc @@ -12,7 +12,7 @@ # (replace ?? with a two letter country code, eg 'de', 'us', 'uk' etc) # A list of all mirrors is at http://www.kernel.org/mirrors/ # -# $Id: makefile.bcc,v 1.34 2003/09/12 22:29:25 mweiser Exp $ +# $Id: makefile.bcc,v 1.35 2003/11/01 14:20:12 mweiser Exp $ BASENAME = dnetc OUTPUTPATH = output diff --git a/makefile.vc b/makefile.vc index 25ebc616b..4bad5f035 100644 --- a/makefile.vc +++ b/makefile.vc @@ -1,7 +1,7 @@ # distributed.net client makefile for VC # see http://www.distributed.net/ # -# $Id: makefile.vc,v 1.84 2003/09/12 22:29:25 mweiser Exp $ +# $Id: makefile.vc,v 1.85 2003/11/01 14:20:12 mweiser Exp $ # BASENAME = dnetc diff --git a/makefile.wat b/makefile.wat index ccc45d2a8..46cc4eb88 100644 --- a/makefile.wat +++ b/makefile.wat @@ -6,7 +6,7 @@ ## or anything else with a section at the end of this file ## (adjust $(known_tgts) if you add a new section) ## -## $Id: makefile.wat,v 1.39 2003/09/12 22:29:25 mweiser Exp $ +## $Id: makefile.wat,v 1.40 2003/11/01 14:20:12 mweiser Exp $ ## ## - This makefile *requires* nasm (http://www.web-sites.co.uk/nasm/) ## - if building a DES-capable client, then it also requires either @@ -392,7 +392,6 @@ output\brf-smc.obj : rc5\x86\brf-smc.asm $(%dependall) @set isused=1 # ---------------------------------------------------------------- - output\x86ident.obj : plat\x86\x86ident.asm $(%dependall) $(%NASMEXE) $(%NASMFLAGS) -o $^@ -i $[: $[@ #*$(%CCASM) $(%AFLAGS) $[@ $(%ERRDIROP) /fo=$^@ /i$[: @@ -478,6 +477,26 @@ output\selcore.obj : common\selcore.cpp $(%dependall) .AUTODEPEND *$(%CCPP) $(%CFLAGS) $(%OPT_SIZE) $[@ $(%ERRDIROP) /fo=$^@ /i$[: @set isused=1 +output\core_rc5.obj : common\core_rc5.cpp $(%dependall) .AUTODEPEND + *$(%CCPP) $(%CFLAGS) $(%OPT_SIZE) $[@ $(%ERRDIROP) /fo=$^@ /i$[: + @set isused=1 + +output\core_r72.obj : common\core_r72.cpp $(%dependall) .AUTODEPEND + *$(%CCPP) $(%CFLAGS) $(%OPT_SIZE) $[@ $(%ERRDIROP) /fo=$^@ /i$[: + @set isused=1 + +output\core_des.obj : common\core_des.cpp $(%dependall) .AUTODEPEND + *$(%CCPP) $(%CFLAGS) $(%OPT_SIZE) $[@ $(%ERRDIROP) /fo=$^@ /i$[: + @set isused=1 + +output\core_csc.obj : common\core_csc.cpp $(%dependall) .AUTODEPEND + *$(%CCPP) $(%CFLAGS) $(%OPT_SIZE) $[@ $(%ERRDIROP) /fo=$^@ /i$[: + @set isused=1 + +output\core_ogr.obj : common\core_ogr.cpp $(%dependall) .AUTODEPEND + *$(%CCPP) $(%CFLAGS) $(%OPT_SIZE) $[@ $(%ERRDIROP) /fo=$^@ /i$[: + @set isused=1 + output\selftest.obj : common\selftest.cpp $(%dependall) .AUTODEPEND *$(%CCPP) $(%CFLAGS) $(%OPT_SIZE) $[@ $(%ERRDIROP) /fo=$^@ /i$[: @set isused=1 @@ -1113,7 +1132,7 @@ os2: .symbolic # OS/2 @set AFLAGS = /5s /fp5 /bt=OS2 /mf @set TASMEXE = @set LFLAGS = sys os2v2 - @set CWARNLEV = $(%CWARNLEV) + @set CWARNLEV = $(%CWARNLEV) /wcd=555 @set CFLAGS = /zp4 /5s /fp5 /bm /mf /zm /bt=os2 /DOS2 /DLURK & /iplat\os2 @set OPT_SIZE = /s /os diff --git a/ogr/alpha/ev67.cpp b/ogr/alpha/ev67.cpp index 5e50011fe..d788058e8 100644 --- a/ogr/alpha/ev67.cpp +++ b/ogr/alpha/ev67.cpp @@ -6,7 +6,7 @@ */ const char *ogr_vec_cpp(void) { -return "@(#)$Id: ev67.cpp,v 1.3 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: ev67.cpp,v 1.4 2003/11/01 14:20:14 mweiser Exp $"; } #if defined(__GNUC__) #define OGROPT_BITOFLIST_DIRECT_BIT 1 /* seems to be a win */ diff --git a/ogr/ansi/ogr.cpp b/ogr/ansi/ogr.cpp index 0b0228cc7..2a938e071 100644 --- a/ogr/ansi/ogr.cpp +++ b/ogr/ansi/ogr.cpp @@ -3,7 +3,7 @@ * For use in distributed.net projects only. * Any other distribution or use of this source violates copyright. * - * $Id: ogr.cpp,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: ogr.cpp,v 1.4 2003/11/01 14:20:14 mweiser Exp $ */ #include /* malloc (if using non-static choose dat) */ #include /* memset */ diff --git a/ogr/ansi/ogr.h b/ogr/ansi/ogr.h index 72f95f77c..4c4370ea4 100644 --- a/ogr/ansi/ogr.h +++ b/ogr/ansi/ogr.h @@ -5,7 +5,7 @@ * */ #ifndef __OGR_H__ -#define __OGR_H__ "@(#)$Id: ogr.h,v 1.3 2003/09/12 22:29:26 mweiser Exp $" +#define __OGR_H__ "@(#)$Id: ogr.h,v 1.4 2003/11/01 14:20:14 mweiser Exp $" #ifndef u16 #include "cputypes.h" diff --git a/ogr/ansi/ogr_dat.cpp b/ogr/ansi/ogr_dat.cpp index c9f341455..0785f722d 100644 --- a/ogr/ansi/ogr_dat.cpp +++ b/ogr/ansi/ogr_dat.cpp @@ -3,7 +3,7 @@ * For use in distributed.net projects only. * Any other distribution or use of this source violates copyright. * - * $Id: ogr_dat.cpp,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: ogr_dat.cpp,v 1.4 2003/11/01 14:20:14 mweiser Exp $ */ #ifdef __cplusplus diff --git a/ogr/ansi/ogr_sup.cpp b/ogr/ansi/ogr_sup.cpp index a6c90ed21..dce556dec 100644 --- a/ogr/ansi/ogr_sup.cpp +++ b/ogr/ansi/ogr_sup.cpp @@ -5,7 +5,7 @@ * * OGR support routines and data. * - * $Id: ogr_sup.cpp,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: ogr_sup.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $ */ #include #include diff --git a/ogr/ppc/ogr-ppc.cpp b/ogr/ppc/ogr-ppc.cpp index 99f970c38..210a36203 100644 --- a/ogr/ppc/ogr-ppc.cpp +++ b/ogr/ppc/ogr-ppc.cpp @@ -5,7 +5,7 @@ */ const char *ogr_vec_cpp(void) { -return "@(#)$Id: ogr-ppc.cpp,v 1.4 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: ogr-ppc.cpp,v 1.5 2003/11/01 14:20:15 mweiser Exp $"; } #if defined(ASM_PPC) || defined(__PPC__) || defined(__POWERPC__) #if (__MWERKS__) diff --git a/ogr/ppc/ogr-vec.cpp b/ogr/ppc/ogr-vec.cpp index 3156e631b..be0ab63cf 100644 --- a/ogr/ppc/ogr-vec.cpp +++ b/ogr/ppc/ogr-vec.cpp @@ -5,7 +5,7 @@ */ const char *ogr_vec_cpp(void) { -return "@(#)$Id: ogr-vec.cpp,v 1.4 2003/09/12 22:29:26 mweiser Exp $"; } +return "@(#)$Id: ogr-vec.cpp,v 1.5 2003/11/01 14:20:15 mweiser Exp $"; } #if defined(__VEC__) || defined(__ALTIVEC__) /* compiler supports AltiVec */ #if (__MWERKS__) diff --git a/ogr/x86/ogr-a.cpp b/ogr/x86/ogr-a.cpp index c49acb771..1100b60e8 100644 --- a/ogr/x86/ogr-a.cpp +++ b/ogr/x86/ogr-a.cpp @@ -6,7 +6,7 @@ * Wrapper around ogr.cpp for all processor WITH a fast bsr instruction. * (ie, PPro, PII, PIII) * - * $Id: ogr-a.cpp,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: ogr-a.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $ */ #undef OGR_NOFFZ /* fine OGR_GET_DISPATCH_TABLE_FXN ogr_get_dispatch_table */ diff --git a/ogr/x86/ogr-b.cpp b/ogr/x86/ogr-b.cpp index 5318a8fd6..84bb6f995 100644 --- a/ogr/x86/ogr-b.cpp +++ b/ogr/x86/ogr-b.cpp @@ -6,7 +6,7 @@ * Wrapper around ogr.cpp for all processor WITHOUT a fast bsr instruction. * (ie, 386, 486, Pentium, P4, K5, K6, K7, Cyrix(all), etc) * - * $Id: ogr-b.cpp,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: ogr-b.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $ */ #define OGR_NOFFZ #define OGR_GET_DISPATCH_TABLE_FXN ogr_get_dispatch_table_nobsr diff --git a/ogr2/ansi/ogr_fb.mac b/ogr2/ansi/ogr_fb.mac index d4b81fdde..1a3bca433 100644 --- a/ogr2/ansi/ogr_fb.mac +++ b/ogr2/ansi/ogr_fb.mac @@ -5,7 +5,7 @@ * This file (ogr_fb.mac) contains all the macros etc. for LOOKUP_FIRSTBLANK * on all the different architectures. */ -#define __OGR_FB_MAC__ "@(#)$Id: ogr_fb.mac,v 1.2 2002/09/02 00:35:48 andreasb Exp $" +#define __OGR_FB_MAC__ "@(#)$Id: ogr_fb.mac,v 1.3 2003/11/01 14:20:15 mweiser Exp $" #if !defined(OGROPT_HAVE_FIND_FIRST_ZERO_BIT_ASM) /* 0 <= x < 0xfffffffe */ static const char ogr_first_blank_8bit[256] = { @@ -43,6 +43,9 @@ return result; } #else /* C code, no asm */ +#if defined(__DECCXX) /* For DEC/Compaq/HP C++ compiler on OpenVMS */ + #define __inline__ inline +#endif static __inline__ int LOOKUP_FIRSTBLANK(register unsigned int input) { register int result = 0; diff --git a/ogr2/ansi/ogr_sup.cpp b/ogr2/ansi/ogr_sup.cpp index e4ca3b827..4830a8079 100644 --- a/ogr2/ansi/ogr_sup.cpp +++ b/ogr2/ansi/ogr_sup.cpp @@ -1,7 +1,7 @@ /* * OGR support routines and data. * - * $Id: ogr_sup.cpp,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: ogr_sup.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $ */ #include #include diff --git a/plat/amd64/x86ident.asm b/plat/amd64/x86ident.asm new file mode 100644 index 000000000..e33d212ff --- /dev/null +++ b/plat/amd64/x86ident.asm @@ -0,0 +1,81 @@ +; +; Copyright distributed.net 1998-2002 - All Rights Reserved +; For use in distributed.net projects only. +; Any other distribution or use of this source violates copyright. +; +; x86 Processor identification for rc5 distributed.net effort +; Written in a dark and stormy night (Jan 16, 1998) by +; Cyrus Patel +; +; $Id: x86ident.asm,v 1.2 2003/11/01 14:20:15 mweiser Exp $ +; +; correctly identifies almost every 386+ processor with the +; following exceptions: +; a) The code to use Cyrix Device ID registers for differentiate between a +; Cyrix 486, 6x86, etc is in place but disabled. Even so, it would not +; detect correctly if CPUID is enabled _and_ reassigned. +; b) It may not correctly identify a Rise CPU if cpuid is disabled/reassigned +; c) It identifies an Intel 486 as an AMD 486 (chips are identical) and not +; vice-versa because the Intel:0400 CPUID is actually a real CPUID value. +; d) It _does_ id the Transmeta Crusoe (its Family:5,Model:4) :) +; +; x86ident: return u32 +; hiword = manufacturer ID (also for 386/486) +; (BX from cpuid for simplicity) +; [bxBXdxDXcxCX] +; GenuineIntel = 'eG' = 0x6547 +; GenuineTMx86 = 'MT' = 0x4D54 <-- NOTE! +; AuthenticAMD = 'uA' = 0x7541 +; CyrixInstead = 'yC' = 0x7943 +; NexGenDriven = 'eN' = 0x654E +; CentaurHauls = 'eC' = 0x6543 +; UMC UMC UMC = 'MU' = 0x4D55 +; RiseRiseRise = 'iR' = 0x6952 +; loword = bits 12..15 for identification extensions +; bits 11...0 for family/model/stepping per CPUID +; or 0x0300 for 386, 0x0400 for 486 +; +; 0123456789|ABCDEFGHIJKLMNOPQRSTUVWXYZ|abcdefghijklmnopqrstuvwxyz| +; 3 3|4 5 |6 7 | +; 0123456789|123456789ABCDEF0123456789A|123456789ABCDEF0123456789A| +BITS 64 + +%define __DATASECT__ [SECTION .data] +%define __CODESECT__ [SECTION .text] + +global x86ident,_x86ident +global x86ident_haveioperm, _x86ident_haveioperm + +__DATASECT__ +__savident dd 0 +_x86ident_haveioperm: ; do we have permission to do in/out? +x86ident_haveioperm dd 0 ; we do on win9x (not NT), win16, dos + +__CODESECT__ +_x86ident: +x86ident: mov eax,[__savident] + or eax, eax + jz _ge386 + ret + +_ge386: +_ge586: push rbx ; cpuid trashes ebx + xor eax, eax ; cpuid function zero + cpuid ; => eax=maxlevels,ebx:ecx:edx=vendor + push rbx ; save maker code + mov eax, 1 ; family/model/stepping/features + cpuid ; => ax=type/family/model/stepping + and ax,0fffh ; drop the type flags + mov cx,ax ; save family/model/stepping bits + pop rax ; restore maker code + shl eax,16 + mov ax,cx ; add family/model/stepping bits + pop rbx + +_end: mov [__savident],eax; save it for next time + ret + +;---------------------------------------------------------------------- + + endp + end diff --git a/plat/amigaos/amGUI.c b/plat/amigaos/amGUI.c index a7261952e..29954d86c 100644 --- a/plat/amigaos/amGUI.c +++ b/plat/amigaos/amGUI.c @@ -3,7 +3,7 @@ * For use in distributed.net projects only. * Any other distribution or use of this source violates copyright. * - * $Id: amGUI.c,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: amGUI.c,v 1.4 2003/11/01 14:20:15 mweiser Exp $ * * Created by Oliver Roberts * diff --git a/plat/amigaos/amSupport.c b/plat/amigaos/amSupport.c index 5f801c33e..8f37ec6a9 100644 --- a/plat/amigaos/amSupport.c +++ b/plat/amigaos/amSupport.c @@ -3,7 +3,7 @@ * For use in distributed.net projects only. * Any other distribution or use of this source violates copyright. * - * $Id: amSupport.c,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: amSupport.c,v 1.4 2003/11/01 14:20:15 mweiser Exp $ * * Created by Oliver Roberts * diff --git a/plat/amigaos/guilib/main.c b/plat/amigaos/guilib/main.c index e34d69c1e..240f1b265 100644 --- a/plat/amigaos/guilib/main.c +++ b/plat/amigaos/guilib/main.c @@ -3,7 +3,7 @@ * For use in distributed.net projects only. * Any other distribution or use of this source violates copyright. * - * $Id: main.c,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: main.c,v 1.4 2003/11/01 14:20:15 mweiser Exp $ * * Created by Oliver Roberts * diff --git a/plat/linux/li_inst.c b/plat/linux/li_inst.c index 9211dcb9d..6f3e66f13 100644 --- a/plat/linux/li_inst.c +++ b/plat/linux/li_inst.c @@ -6,7 +6,7 @@ * -install and -uninstall support for Linux (maybe all SysV style init?) * * Created Aug 23 2000, by Cyrus Patel - * $Id: li_inst.c,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: li_inst.c,v 1.4 2003/11/01 14:20:15 mweiser Exp $ * */ #define __NO_STRING_INLINES /* work around bugs in glibc bits/string2.h */ diff --git a/plat/linux/resolv.c b/plat/linux/resolv.c index 953a9b793..0caaee7c7 100644 --- a/plat/linux/resolv.c +++ b/plat/linux/resolv.c @@ -13,7 +13,7 @@ * has 'host', and that too can be bypassed (described below). * * Created Aug 2 2000, by Cyrus Patel - * $Id: resolv.c,v 1.3 2003/09/12 22:29:26 mweiser Exp $ + * $Id: resolv.c,v 1.4 2003/11/01 14:20:15 mweiser Exp $ * * The functions exported from here will first check if a bypass * (described below) has been provided. diff --git a/plat/macos/resources/version.r b/plat/macos/resources/version.r index d5bb85254..964f2d572 100644 --- a/plat/macos/resources/version.r +++ b/plat/macos/resources/version.r @@ -3,7 +3,7 @@ * For use in distributed.net projects only. * Any other distribution or use of this source violates copyright. * - * @(#)$Id: version.r,v 1.3 2003/09/12 22:29:27 mweiser Exp $ + * @(#)$Id: version.r,v 1.4 2003/11/01 14:20:15 mweiser Exp $ */ #include "Types.r" diff --git a/plat/netware/misc/nwpre3x.c b/plat/netware/misc/nwpre3x.c index 451161776..2c067b682 100644 --- a/plat/netware/misc/nwpre3x.c +++ b/plat/netware/misc/nwpre3x.c @@ -7,7 +7,7 @@ * This file contains startup code similar to what crt0 does elsewhere. * Written August 1997 Cyrus Patel * - * $Id: nwpre3x.c,v 1.3 2003/09/12 22:29:27 mweiser Exp $ + * $Id: nwpre3x.c,v 1.4 2003/11/01 14:20:15 mweiser Exp $ * * Unlike Novell's prelude, its in source, is backwards compatible with * NetWare 3.x, zeroes the BSS segment, and supports Watcom c/cpp lib diff --git a/plat/os2/os2inst.cpp b/plat/os2/os2inst.cpp index 565672487..633cf578d 100644 --- a/plat/os2/os2inst.cpp +++ b/plat/os2/os2inst.cpp @@ -13,7 +13,7 @@ * */ const char *os2inst_cpp(void) { -return "@(#)$Id: os2inst.cpp,v 1.3 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: os2inst.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $"; } // #define TRACE @@ -56,10 +56,9 @@ int os2CliUninstallClient(int do_the_uninstall_without_feedback) int os2CliInstallClient(int do_the_install_without_feedback, const char *exename) { #define PSZSTRINGSIZE 4068 - static char - pszClassName[] = "WPProgram", - pszTitle[] = "distributed.net client", - pszLocation[] = ""; // Startup Folder + static char pszClassName[] = "WPProgram"; + static char pszTitle[] = "distributed.net client"; + static char pszLocation[] = ""; // Startup Folder int rc, was_installed; char pszSetupString[PSZSTRINGSIZE]; @@ -260,6 +259,8 @@ int os2CliSendSignal(int action, const char *exename) case DNETC_MSG_SHUTDOWN: rc = DosKillProcess(DKP_PROCESS, pids[i]); break; +#if defined(__EMX__) +/* watcom has no kill() */ case DNETC_MSG_PAUSE: rc = kill(pids[i], TRIGGER_PAUSE_SIGNAL); break; @@ -269,6 +270,7 @@ int os2CliSendSignal(int action, const char *exename) case DNETC_MSG_RESTART: rc = kill(pids[i], SIGHUP); break; +#endif default: // others are not supported. yet. rc = 0; ret = -1; // error diff --git a/plat/riscos/package/!System/310/Modules/FPEmulator,ffa b/plat/riscos/package/!System/310/Modules/FPEmulator,ffa new file mode 100644 index 0000000000000000000000000000000000000000..fcbf2ac596f364e4e2dea4bf8989674081581417 GIT binary patch literal 30564 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%0Aqnq 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 and Chris Berry * - * $Id: riscos_sup.cpp,v 1.3 2003/09/12 22:29:27 mweiser Exp $ + * $Id: riscos_sup.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $ */ #include /* printf() for debugging */ @@ -215,7 +215,7 @@ int riscos_find_local_directory(const char *progname) return -1; } -char *riscos_version(void) +int riscos_versioncode(void) { _kernel_swi_regs regs; _kernel_oserror *e; @@ -225,37 +225,45 @@ char *riscos_version(void) regs.r[2]=255; e = _kernel_swi(XOS_Bit|OS_Byte, ®s, ®s); if (!e) + return regs.r[1]; + else + return 0; +} + +char *riscos_version(void) +{ + int c; + _kernel_swi_regs regs; + _kernel_oserror *e; + + c=riscos_versioncode(); + switch (c) { - switch (regs.r[1]) - { - case 0xa0: - return "Arthur 1.2"; - case 0xa1: - return "RISC OS 2.00"; - case 0xa2: - return "RISC OS 2.01"; - case 0xa3: - return "RISC OS 3.00"; - case 0xa4: - return "RISC OS 3.1X"; - case 0xa5: - return "RISC OS 3.5"; - case 0xa6: - return "RISC OS 3.6"; - case 0xa7: - return "RISC OS 3.7"; - default: - if (regs.r[1]>=0xa8) - { - regs.r[0]=9; - regs.r[1]=0; - _kernel_swi(XOS_Bit|OS_ReadSysInfo, ®s, ®s); - return (char *)regs.r[0]; - } - else - return ""; - } + case 0xa0: + return "Arthur 1.2"; + case 0xa1: + return "RISC OS 2.00"; + case 0xa2: + return "RISC OS 2.01"; + case 0xa3: + return "RISC OS 3.00"; + case 0xa4: + return "RISC OS 3.1X"; + case 0xa5: + return "RISC OS 3.5"; + case 0xa6: + return "RISC OS 3.6"; + case 0xa7: + return "RISC OS 3.7"; + default: + if (c>=0xa8) + { + regs.r[0]=9; + regs.r[1]=0; + e=_kernel_swi(XOS_Bit|OS_ReadSysInfo, ®s, ®s); + return (char *)regs.r[0]; + } + else + return ""; } - else - return ""; } diff --git a/plat/riscos/riscos_sup.h b/plat/riscos/riscos_sup.h index 80307e8f9..8c49759e2 100644 --- a/plat/riscos/riscos_sup.h +++ b/plat/riscos/riscos_sup.h @@ -5,7 +5,7 @@ * * By Kevin Bracey and Chris Berry * - * $Id: riscos_sup.h,v 1.3 2003/09/12 22:29:27 mweiser Exp $ + * $Id: riscos_sup.h,v 1.4 2003/11/01 14:20:15 mweiser Exp $ */ #ifndef __RISCOS_SUP_H__ #define __RISCOS_SUP_H__ @@ -27,6 +27,7 @@ void riscos_backspace(void); static const char *riscos_get_local_directory(const char *appname); const char *riscos_localise_filename(const char *filename); int riscos_find_local_directory(const char *progname); +int riscos_versioncode(void); char *riscos_version(void); //unsigned int sleep(unsigned int s); /* unistd replacement */ diff --git a/plat/riscos/riscos_x86.cpp b/plat/riscos/riscos_x86.cpp index ce3796a4a..a928b3102 100644 --- a/plat/riscos/riscos_x86.cpp +++ b/plat/riscos/riscos_x86.cpp @@ -5,7 +5,7 @@ * * x86 PCCARD support including a crunch wrapper/controller * - * $Id: riscos_x86.cpp,v 1.3 2003/09/12 22:29:27 mweiser Exp $ + * $Id: riscos_x86.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $ */ #include /* memcpy */ diff --git a/plat/win/w32cons.cpp b/plat/win/w32cons.cpp index 8e7bcd540..5ec8d55b8 100644 --- a/plat/win/w32cons.cpp +++ b/plat/win/w32cons.cpp @@ -11,7 +11,7 @@ * Created 03.Oct.98 by Cyrus Patel */ const char *w32cons_cpp(void) { -return "@(#)$Id: w32cons.cpp,v 1.5 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: w32cons.cpp,v 1.6 2003/11/01 14:20:15 mweiser Exp $"; } //define TRACE only if you want to use any TRACE_OUT below //#define TRACE diff --git a/plat/win/w32cons.rc b/plat/win/w32cons.rc index 2d8e2cf0c..7cd898d91 100644 --- a/plat/win/w32cons.rc +++ b/plat/win/w32cons.rc @@ -6,7 +6,7 @@ * This resource file is shared by the client and screensaver. * (the client can also run as a screensaver) * - * Revision $Id: w32cons.rc,v 1.4 2003/09/12 22:29:27 mweiser Exp $ + * Revision $Id: w32cons.rc,v 1.5 2003/11/01 14:20:15 mweiser Exp $ */ #define DNETC_EXE_ICO "plat\\win\\w32cons.ico" //dnet2.ico,w32cons.ico @@ -17,7 +17,11 @@ #define SSVI_COMPANYNAME "Distributed Computing Technologies, Inc." #define SSVI_FILEDESCR "distributed.net client" #define SSVI_SSNAME "distributed.net client launcher" //max 25 - #define SSVI_VERMAJOR (CLIENT_CONTEST*100+CLIENT_BUILD) + + // lame hack, since the Visual C++ resource compiler expression evaluator can't understand multiplication. + #define SSVI_VERMAJOR (CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_CONTEST+CLIENT_BUILD) + //#define SSVI_VERMAJOR (CLIENT_CONTEST*100+CLIENT_BUILD) + #define SSVI_VERMINOR CLIENT_BUILD_FRAC #define SSVI_VERSTRING CLIENT_VERSIONSTRING #else diff --git a/plat/win/w32snapp.c b/plat/win/w32snapp.c index 0dd4db4a7..bc0c7f93d 100644 --- a/plat/win/w32snapp.c +++ b/plat/win/w32snapp.c @@ -31,7 +31,7 @@ * and pe.szExeFile usually (I've seen a few ".com"s, but not all .com's * appear with ".com") does not have an extension. * - * $Id: w32snapp.c,v 1.3 2003/09/12 22:29:27 mweiser Exp $ + * $Id: w32snapp.c,v 1.4 2003/11/01 14:20:15 mweiser Exp $ */ #define WIN32_LEAN_AND_MEAN diff --git a/plat/win/w32ss.cpp b/plat/win/w32ss.cpp index ecc854ca1..a0ae9bc71 100644 --- a/plat/win/w32ss.cpp +++ b/plat/win/w32ss.cpp @@ -8,7 +8,7 @@ */ const char *w32ss_cpp(void) { -return "@(#)$Id: w32ss.cpp,v 1.3 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: w32ss.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $"; } #include "cputypes.h" #include "unused.h" /* DNETC_UNUSED_* */ diff --git a/plat/win/w32svc.cpp b/plat/win/w32svc.cpp index 89519c827..61b338ae2 100644 --- a/plat/win/w32svc.cpp +++ b/plat/win/w32svc.cpp @@ -7,7 +7,7 @@ */ const char *w32svc_cpp(void) { -return "@(#)$Id: w32svc.cpp,v 1.3 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: w32svc.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $"; } //#define TRACE diff --git a/plat/x86/x86ident.S b/plat/x86/x86ident.S index 81e4195de..fd696bba7 100644 --- a/plat/x86/x86ident.S +++ b/plat/x86/x86ident.S @@ -11,7 +11,7 @@ */ .data -_id: .ascii "@(#)$Id: x86ident.S,v 1.3 2003/09/12 22:29:27 mweiser Exp $" +_id: .ascii "@(#)$Id: x86ident.S,v 1.4 2003/11/01 14:20:15 mweiser Exp $" .byte 0 .align 4 _savident: .long 0 // avoid serialization caused by CPUID diff --git a/plat/x86/x86ident.asm b/plat/x86/x86ident.asm index 51a753639..c48c1d180 100644 --- a/plat/x86/x86ident.asm +++ b/plat/x86/x86ident.asm @@ -7,7 +7,7 @@ ; Written in a dark and stormy night (Jan 16, 1998) by ; Cyrus Patel ; -; $Id: x86ident.asm,v 1.4 2003/09/12 22:29:27 mweiser Exp $ +; $Id: x86ident.asm,v 1.5 2003/11/01 14:20:15 mweiser Exp $ ; ; correctly identifies almost every 386+ processor with the ; following exceptions: diff --git a/rc5-72/amd64/r72-snjl.asm b/rc5-72/amd64/r72-snjl.asm new file mode 100644 index 000000000..eedffea2a --- /dev/null +++ b/rc5-72/amd64/r72-snjl.asm @@ -0,0 +1,697 @@ +; Copyright distributed.net 1997-2003 - All Rights Reserved +; For use in distributed.net projects only. +; Any other distribution or use of this source violates copyright. +; +; AMD64 (x86_64) 3-pipe core by: +; Steven Nikkel +; Jeff Lawson +; +; Based off of the r72-dg3.asm core by Décio Luiz Gazzoni Filho. +; $Id: r72-snjl.asm,v 1.2 2003/11/01 14:20:15 mweiser Exp $ + +[SECTION .text] +BITS 64 + +[GLOBAL _rc5_72_unit_func_snjl] +[GLOBAL rc5_72_unit_func_snjl] + +%define P 0xB7E15163 +%define Q 0x9E3779B9 +%define S_not(N) (P+Q*(N)) + +%define RESULT_NOTHING 1 +%define RESULT_FOUND 2 + +%assign work_size 0 + +%macro defidef 2 + %define %1 rsp+%2 +%endmacro + +%macro defwork 1-2 1 + defidef %1,work_size + %assign work_size work_size+4*(%2) +%endmacro + +;; local storage variables +defwork work_L3,1 +defwork work_s1,26 +defwork work_s2,26 +defwork work_s3,26 +defwork work_backup_L1,3 +defwork work_backup_L2,3 +defwork work_backup_L3,3 +defwork work_P_0 +defwork work_P_1 +defwork work_C_0 +defwork work_C_1 +defwork work_iterations +defwork save_rbx,2 +defwork save_rbp,2 +defwork save_r12,2 +defwork save_r13,2 +defwork save_r14,2 +defwork save_r15,2 +defwork RC5_72UnitWork,2 ; 1st argument (64-bit pointer), passed in rdi +defwork iterations,2 ; 2nd argument (64-bit pointer), passed in rsi + +;; offsets within the parameter structure +%define RC5_72UnitWork_plainhi rax+0 +%define RC5_72UnitWork_plainlo rax+4 +%define RC5_72UnitWork_cipherhi rax+8 +%define RC5_72UnitWork_cipherlo rax+12 +%define RC5_72UnitWork_L0hi rax+16 +%define RC5_72UnitWork_L0mid rax+20 +%define RC5_72UnitWork_L0lo rax+24 +%define RC5_72UnitWork_CMCcount rax+28 +%define RC5_72UnitWork_CMChi rax+32 +%define RC5_72UnitWork_CMCmid rax+36 +%define RC5_72UnitWork_CMClo rax+40 + +;; convenience aliases +%define S1(N) [work_s1+((N)*4)] +%define S2(N) [work_s2+((N)*4)] +%define S3(N) [work_s3+((N)*4)] +%define L3_2 [work_L3] +%define L1backup(N) [work_backup_L1+((N)*4)] +%define L2backup(N) [work_backup_L2+((N)*4)] +%define L3backup(N) [work_backup_L3+((N)*4)] +%define A1 eax +%define A2 ebx +%define A3 edx +%define B1 esi +%define B2 edi +%define B3 ebp +%define shiftreg ecx +%define shiftcount cl +%define L1_0 r8d +%define L1_1 r9d +%define L1_2 r10d +%define L2_0 r11d +%define L2_1 r12d +%define L2_2 r13d +%define L3_0 r14d +%define L3_1 r15d + + +%macro KEYSETUP_BLOCK 3 + rol A1, 3 + rol A2, 3 + rol A3, 3 + + lea shiftreg, [A1 + B1] + add B1, L1_%3 + mov S1(%2), A1 + + add B1, A1 + rol B1, shiftcount +%ifidn %1,S + add A1, S1(%2+1) +%else + lea A1, [A1 + B1 + S_not(%2+1)] +%endif + + add B2, A2 + mov shiftreg, B2 + add B2, L2_%3 + + add B3, A3 + mov S2(%2), A2 + mov S3(%2), A3 + + rol B2, shiftcount +%ifidn %1,S + add A2, S2(%2+1) + add A1, B1 +%else + lea A2, [A2 + B2 + S_not(%2+1)] +%endif + + mov L1_%3, B1 + mov shiftreg, B3 + add B3, L3_%3 + + rol B3, shiftcount +%ifidn %1,S + add A3, S3(%2+1) + add A2, B2 +%else + lea A3, [A3 + B3 + S_not(%2+1)] +%endif + + mov L2_%3, B2 + mov L3_%3, B3 +%ifidn %1,S + add A3, B3 +%endif +%endmacro + +%macro ENCRYPTION_BLOCK 1 + mov shiftreg, B1 + xor A1, B1 + xor A2, B2 + + rol A1, shiftcount + mov shiftreg, B2 + add A1, S1(2*%1) + + xor A3, B3 + rol A2, shiftcount + mov shiftreg, B3 + + add A2, S2(2*%1) + rol A3, shiftcount + mov shiftreg, A1 + + add A3, S3(2*%1) + xor B1, A1 + xor B2, A2 + + rol B1, shiftcount + mov shiftreg, A2 + add B1, S1(2*%1+1) + + xor B3, A3 + rol B2, shiftcount + mov shiftreg, A3 + + add B2, S2(2*%1+1) + rol B3, shiftcount + + add B3, S3(2*%1+1) +%endmacro + + +align 16 +startseg: +rc5_72_unit_func_snjl: +rc5_72_unit_func_snjl_: +_rc5_72_unit_func_snjl: + + sub rsp, work_size + mov [RC5_72UnitWork],rdi ; 1st argument is passed in rdi + mov [iterations],rsi ; 2nd argument is passwd in rsi + + mov rax, rdi ; rax points to RC5_72UnitWork + + ;; rbp, rbx, and r12 thru r15 must be preserved! + mov [save_rbp], rbp + mov [save_rbx], rbx + mov [save_r12], r12 + mov [save_r13], r13 + mov [save_r14], r14 + mov [save_r15], r15 + + mov edx, [RC5_72UnitWork_plainlo] + mov edi, [RC5_72UnitWork_plainhi] + + mov ebx, [RC5_72UnitWork_cipherlo] + mov ecx, [RC5_72UnitWork_cipherhi] + + mov [work_P_0], edx + mov [work_P_1], edi + mov edx, [RC5_72UnitWork_L0hi] + + mov [work_C_0], ebx + mov [work_C_1], ecx + mov edi, [rsi] ; rsi points to iterations + + imul edi, 2863311531 + mov ecx, [RC5_72UnitWork_L0mid] + mov ebx, [RC5_72UnitWork_L0lo] + + mov [work_iterations], edi + mov L1_2, edx + mov L1_1, ecx + mov L1_0, ebx + + mov L1backup(2), edx + mov L1backup(1), ecx + mov L1backup(0), ebx + + add dl, 1 + bswap ecx + bswap ebx + + adc ecx, BYTE 0 + adc ebx, BYTE 0 + + bswap ecx + bswap ebx + + mov L2_2, edx + mov L2_1, ecx + mov L2_0, ebx + + mov L2backup(2), edx + mov L2backup(1), ecx + mov L2backup(0), ebx + + add dl, 1 + bswap ecx + bswap ebx + + adc ecx, BYTE 0 + adc ebx, BYTE 0 + + bswap ecx + bswap ebx + + mov L3_2, edx + mov L3_1, ecx + mov L3_0, ebx + + mov L3backup(2), edx + mov L3backup(1), ecx + mov L3backup(0), ebx + + +align 16 +key_setup_1: + mov B1, L1_0 + mov B2, L2_0 + mov B3, L3_0 + + mov A1, 0xBF0A8B1D ; 0xBF0A8B1D is S[0] + mov A2, A1 + mov A3, A1 + + mov S1(0), A1 + mov S2(0), A1 + mov S3(0), A1 + + add B1, A1 + add B2, A1 + add B3, A1 + + rol B1, 0x1D ; 0x1D are least significant bits of S[0] + rol B2, 0x1D + rol B3, 0x1D + + lea A1, [A1 + B1 + S_not(1)] + lea A2, [A2 + B2 + S_not(1)] + lea A3, [A3 + B3 + S_not(1)] + + mov L1_0, B1 + mov L2_0, B2 + mov L3_0, B3 + + KEYSETUP_BLOCK S_not,1,1 + KEYSETUP_BLOCK S_not,2,2 + KEYSETUP_BLOCK S_not,3,0 + KEYSETUP_BLOCK S_not,4,1 + KEYSETUP_BLOCK S_not,5,2 + KEYSETUP_BLOCK S_not,6,0 + KEYSETUP_BLOCK S_not,7,1 + KEYSETUP_BLOCK S_not,8,2 + KEYSETUP_BLOCK S_not,9,0 + KEYSETUP_BLOCK S_not,10,1 + KEYSETUP_BLOCK S_not,11,2 + KEYSETUP_BLOCK S_not,12,0 + KEYSETUP_BLOCK S_not,13,1 + KEYSETUP_BLOCK S_not,14,2 + KEYSETUP_BLOCK S_not,15,0 + KEYSETUP_BLOCK S_not,16,1 + KEYSETUP_BLOCK S_not,17,2 + KEYSETUP_BLOCK S_not,18,0 + KEYSETUP_BLOCK S_not,19,1 + KEYSETUP_BLOCK S_not,20,2 + KEYSETUP_BLOCK S_not,21,0 + KEYSETUP_BLOCK S_not,22,1 + KEYSETUP_BLOCK S_not,23,2 + KEYSETUP_BLOCK S_not,24,0 + + rol A1, 3 + rol A2, 3 + rol A3, 3 + + lea shiftreg, [A1 + B1] + + add B1, L1_1 + mov S1(25), A1 + + mov S2(25), A2 + mov S3(25), A3 + add B1, A1 + + add A1, S1(0) + add B2, A2 + add B3, A3 + + rol B1, shiftcount + mov shiftreg, B2 + add B2, L2_1 + + add A2, S2(0) + add A1, B1 + mov L1_1, B1 + + rol B2, shiftcount + mov shiftreg, B3 + add B3, L3_1 + + add A3, S3(0) + add A2, B2 + mov L2_1, B2 + + rol B3, shiftcount + + mov L3_1, B3 + add A3, B3 + +key_setup_2: + + KEYSETUP_BLOCK S,0,2 + KEYSETUP_BLOCK S,1,0 + KEYSETUP_BLOCK S,2,1 + KEYSETUP_BLOCK S,3,2 + KEYSETUP_BLOCK S,4,0 + KEYSETUP_BLOCK S,5,1 + KEYSETUP_BLOCK S,6,2 + KEYSETUP_BLOCK S,7,0 + KEYSETUP_BLOCK S,8,1 + KEYSETUP_BLOCK S,9,2 + KEYSETUP_BLOCK S,10,0 + KEYSETUP_BLOCK S,11,1 + KEYSETUP_BLOCK S,12,2 + KEYSETUP_BLOCK S,13,0 + KEYSETUP_BLOCK S,14,1 + KEYSETUP_BLOCK S,15,2 + KEYSETUP_BLOCK S,16,0 + KEYSETUP_BLOCK S,17,1 + KEYSETUP_BLOCK S,18,2 + KEYSETUP_BLOCK S,19,0 + KEYSETUP_BLOCK S,20,1 + KEYSETUP_BLOCK S,21,2 + KEYSETUP_BLOCK S,22,0 + KEYSETUP_BLOCK S,23,1 + KEYSETUP_BLOCK S,24,2 + + rol A1, 3 + rol A2, 3 + rol A3, 3 + + lea shiftreg, [A1 + B1] + add B1, L1_0 + mov S1(25), A1 + + mov S2(25), A2 + mov S3(25), A3 + add B1, A1 + + add A1, S1(0) + add B2, A2 + add B3, A3 + + rol B1, shiftcount + mov shiftreg, B2 + add B2, L2_0 + + add A2, S2(0) + add A1, B1 + mov L1_0, B1 + + rol B2, shiftcount + mov shiftreg, B3 + add B3, L3_0 + + add A3, S3(0) + add A2, B2 + mov L2_0, B2 + + rol B3, shiftcount + + mov L3_0, B3 + add A3, B3 + +key_setup_3: + + KEYSETUP_BLOCK S,0,1 + KEYSETUP_BLOCK S,1,2 + KEYSETUP_BLOCK S,2,0 + KEYSETUP_BLOCK S,3,1 + KEYSETUP_BLOCK S,4,2 + KEYSETUP_BLOCK S,5,0 + KEYSETUP_BLOCK S,6,1 + KEYSETUP_BLOCK S,7,2 + KEYSETUP_BLOCK S,8,0 + KEYSETUP_BLOCK S,9,1 + KEYSETUP_BLOCK S,10,2 + KEYSETUP_BLOCK S,11,0 + KEYSETUP_BLOCK S,12,1 + KEYSETUP_BLOCK S,13,2 + KEYSETUP_BLOCK S,14,0 + KEYSETUP_BLOCK S,15,1 + KEYSETUP_BLOCK S,16,2 + KEYSETUP_BLOCK S,17,0 + KEYSETUP_BLOCK S,18,1 + KEYSETUP_BLOCK S,19,2 + KEYSETUP_BLOCK S,20,0 + KEYSETUP_BLOCK S,21,1 + KEYSETUP_BLOCK S,22,2 + KEYSETUP_BLOCK S,23,0 + KEYSETUP_BLOCK S,24,1 + + rol A1, 3 + rol A2, 3 + rol A3, 3 + + mov S1(25), A1 + mov S2(25), A2 + mov S3(25), A3 + + +; A1 = rc5_72unitwork->plain.lo + S1[0]; +; A2 = rc5_72unitwork->plain.lo + S2[0]; +; B1 = rc5_72unitwork->plain.hi + S1[1]; +; B2 = rc5_72unitwork->plain.hi + S2[1]; + +encryption: + + mov A1, [work_P_0] + mov B1, [work_P_1] + mov A2, A1 + + mov A3, A1 + mov B2, B1 + mov B3, B1 + + add A1, S1(0) + add A2, S2(0) + add A3, S3(0) + + add B1, S1(1) + add B2, S2(1) + add B3, S3(1) + + ENCRYPTION_BLOCK 1 + ENCRYPTION_BLOCK 2 + ENCRYPTION_BLOCK 3 + ENCRYPTION_BLOCK 4 + ENCRYPTION_BLOCK 5 + ENCRYPTION_BLOCK 6 + ENCRYPTION_BLOCK 7 + ENCRYPTION_BLOCK 8 + ENCRYPTION_BLOCK 9 + ENCRYPTION_BLOCK 10 + ENCRYPTION_BLOCK 11 + ENCRYPTION_BLOCK 12 + +test_key_1: + cmp A1, [work_C_0] + mov rax, [RC5_72UnitWork] ; 64-bit pointer + + jne short test_key_2 + + inc dword [RC5_72UnitWork_CMCcount] + + mov ecx, L1backup(2) + mov [RC5_72UnitWork_CMChi], ecx + + mov ecx, L1backup(1) + mov [RC5_72UnitWork_CMCmid], ecx + + mov ecx, L1backup(0) + mov [RC5_72UnitWork_CMClo], ecx + + cmp B1, [work_C_1] + jne short test_key_2 + + xor ecx, ecx + + jmp finished_found + +align 16 +test_key_2: + cmp A2, [work_C_0] + + jne short test_key_3 + + mov esi, L2backup(2) + mov ecx, L2backup(1) + mov ebx, L2backup(0) + + inc dword [RC5_72UnitWork_CMCcount] + + mov [RC5_72UnitWork_CMChi], esi + mov [RC5_72UnitWork_CMCmid], ecx + mov [RC5_72UnitWork_CMClo], ebx + + cmp B2, [work_C_1] + jne short test_key_3 + + xor ecx, ecx + dec ecx + + jmp finished_found + +align 16 +test_key_3: + cmp A3, [work_C_0] + mov edx, [RC5_72UnitWork_L0hi] + + jne short inc_key + + mov esi, L3backup(2) + mov ecx, L3backup(1) + mov ebx, L3backup(0) + + inc dword [RC5_72UnitWork_CMCcount] + + mov [RC5_72UnitWork_CMChi], esi + mov [RC5_72UnitWork_CMCmid], ecx + mov [RC5_72UnitWork_CMClo], ebx + + cmp B3, [work_C_1] + + jne short inc_key + + mov ecx, -2 + + jmp finished_found + + +align 16 +inc_key: + cmp dl, 0xFD + mov ecx, [RC5_72UnitWork_L0mid] + mov ebx, [RC5_72UnitWork_L0lo] + + jae complex_incr + + add dl, 3 + + mov [RC5_72UnitWork_L0hi], edx + mov L1_2, edx + mov L1backup(2), edx + inc edx + + mov L2_2, edx + mov L2backup(2), edx + inc edx + + mov L3_2, edx + mov L3backup(2), edx + dec dword [work_iterations] + + mov L1_1, ecx + mov L2_1, ecx + mov L3_1, ecx + + mov L1_0, ebx + mov L2_0, ebx + mov L3_0, ebx + + jnz key_setup_1 + + xor eax, eax + jmp finished + +align 16 +complex_incr: + add dl, 3 + bswap ecx + bswap ebx + + adc ecx, BYTE 0 + adc ebx, BYTE 0 + + bswap ecx + bswap ebx + + mov L1_2, edx + mov L1_1, ecx + mov L1_0, ebx + + mov L1backup(2), edx + mov L1backup(1), ecx + mov L1backup(0), ebx + + mov [RC5_72UnitWork_L0hi], edx + mov [RC5_72UnitWork_L0mid], ecx + mov [RC5_72UnitWork_L0lo], ebx + + add dl, 1 + bswap ecx + bswap ebx + + adc ecx, BYTE 0 + adc ebx, BYTE 0 + + bswap ecx + bswap ebx + + mov L2_2, edx + mov L2_1, ecx + mov L2_0, ebx + + mov L2backup(2), edx + mov L2backup(1), ecx + mov L2backup(0), ebx + + add dl, 1 + bswap ecx + bswap ebx + + adc ecx, BYTE 0 + adc ebx, BYTE 0 + dec dword [work_iterations] + + bswap ecx + bswap ebx + + mov L3_2, edx + mov L3_1, ecx + mov L3_0, ebx + + mov L3backup(2), edx + mov L3backup(1), ecx + mov L3backup(0), ebx + + jnz key_setup_1 + + xor eax, eax + jmp short finished +finished_found: + mov rsi, [iterations] ; 64-bit pointer + add ecx, [work_iterations] + add ecx, [work_iterations] + add ecx, [work_iterations] + sub [rsi], ecx + + xor eax, eax + inc eax +finished: + inc eax + + ;; rbp, rbx, and r12 thru r15 must be restored + mov rbp, [save_rbp] + mov rbx, [save_rbx] + mov r12, [save_r12] + mov r13, [save_r13] + mov r14, [save_r14] + mov r15, [save_r15] + + add rsp, work_size + + ret diff --git a/rc5-72/ansi/r72ansi1.cpp b/rc5-72/ansi/r72ansi1.cpp index 793da1d4b..04afefada 100644 --- a/rc5-72/ansi/r72ansi1.cpp +++ b/rc5-72/ansi/r72ansi1.cpp @@ -4,7 +4,7 @@ * Any other distribution or use of this source violates copyright. */ const char *r72ansi1_cpp(void) { -return "@(#)$Id: r72ansi1.cpp,v 1.17 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: r72ansi1.cpp,v 1.18 2003/11/01 14:20:15 mweiser Exp $"; } #include "ccoreio.h" #include "rotate.h" diff --git a/rc5-72/ansi/r72ansi2.cpp b/rc5-72/ansi/r72ansi2.cpp index 9e0c3e336..c57563088 100644 --- a/rc5-72/ansi/r72ansi2.cpp +++ b/rc5-72/ansi/r72ansi2.cpp @@ -4,7 +4,7 @@ * Any other distribution or use of this source violates copyright. */ const char *r72ansi2_cpp(void) { -return "@(#)$Id: r72ansi2.cpp,v 1.22 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: r72ansi2.cpp,v 1.23 2003/11/01 14:20:15 mweiser Exp $"; } #include "ccoreio.h" #include "rotate.h" diff --git a/rc5-72/ansi/r72ansi4.cpp b/rc5-72/ansi/r72ansi4.cpp index 20a254462..208bfcd7c 100644 --- a/rc5-72/ansi/r72ansi4.cpp +++ b/rc5-72/ansi/r72ansi4.cpp @@ -4,7 +4,7 @@ * Any other distribution or use of this source violates copyright. */ const char *r72ansi4_cpp(void) { -return "@(#)$Id: r72ansi4.cpp,v 1.21 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: r72ansi4.cpp,v 1.22 2003/11/01 14:20:15 mweiser Exp $"; } #include "ccoreio.h" #include "rotate.h" diff --git a/rc5-72/ansi/rotate.h b/rc5-72/ansi/rotate.h index 6e86ce2fb..3761856fc 100644 --- a/rc5-72/ansi/rotate.h +++ b/rc5-72/ansi/rotate.h @@ -2,7 +2,7 @@ // For use in distributed.net projects only. // Any other distribution or use of this source violates copyright. // -// $Id: rotate.h,v 1.5 2003/09/12 22:29:27 mweiser Exp $ +// $Id: rotate.h,v 1.6 2003/11/01 14:20:15 mweiser Exp $ // #ifndef __ROTATE_H__ diff --git a/rc5-72/gentests72.cpp b/rc5-72/gentests72.cpp index e7b54c7bb..cf5fd3c2a 100644 --- a/rc5-72/gentests72.cpp +++ b/rc5-72/gentests72.cpp @@ -3,7 +3,7 @@ * For use in distributed.net projects only. * Any other distribution or use of this source violates copyright. * - * $Id: gentests72.cpp,v 1.8 2003/09/12 22:29:27 mweiser Exp $ + * $Id: gentests72.cpp,v 1.9 2003/11/01 14:20:15 mweiser Exp $ */ /**************************************************************************/ /* */ diff --git a/rc5-72/x86/r72-dg2.asm b/rc5-72/x86/r72-dg2.asm index ae2448c95..1670c86ab 100644 --- a/rc5-72/x86/r72-dg2.asm +++ b/rc5-72/x86/r72-dg2.asm @@ -3,7 +3,7 @@ ; Any other distribution or use of this source violates copyright. ; ; Author: Décio Luiz Gazzoni Filho -; $Id: r72-dg2.asm,v 1.14 2003/09/12 22:29:27 mweiser Exp $ +; $Id: r72-dg2.asm,v 1.15 2003/11/01 14:20:15 mweiser Exp $ %ifdef __OMF__ ; Borland and Watcom compilers/linkers [SECTION _TEXT FLAT USE32 align=16 CLASS=CODE] diff --git a/rc5-72/x86/r72-dg3.asm b/rc5-72/x86/r72-dg3.asm index 5e6ad9c41..56084ba55 100644 --- a/rc5-72/x86/r72-dg3.asm +++ b/rc5-72/x86/r72-dg3.asm @@ -3,7 +3,7 @@ ; Any other distribution or use of this source violates copyright. ; ; Author: Décio Luiz Gazzoni Filho -; $Id: r72-dg3.asm,v 1.4 2003/09/12 22:29:27 mweiser Exp $ +; $Id: r72-dg3.asm,v 1.5 2003/11/01 14:20:15 mweiser Exp $ %ifdef __OMF__ ; Borland and Watcom compilers/linkers [SECTION _TEXT FLAT USE32 align=16 CLASS=CODE] diff --git a/rc5-72/x86/r72-dg3a.asm b/rc5-72/x86/r72-dg3a.asm index 672d57150..9b8c36963 100644 --- a/rc5-72/x86/r72-dg3a.asm +++ b/rc5-72/x86/r72-dg3a.asm @@ -3,7 +3,7 @@ ; Any other distribution or use of this source violates copyright. ; ; Author: Décio Luiz Gazzoni Filho -; $Id: r72-dg3a.asm,v 1.3 2003/09/12 22:29:27 mweiser Exp $ +; $Id: r72-dg3a.asm,v 1.4 2003/11/01 14:20:15 mweiser Exp $ %ifdef __OMF__ ; Borland and Watcom compilers/linkers [SECTION _TEXT FLAT USE32 align=16 CLASS=CODE] diff --git a/rc5-72/x86/r72-dgp4.asm b/rc5-72/x86/r72-dgp4.asm index 6b1ceaff3..bac93d109 100644 --- a/rc5-72/x86/r72-dgp4.asm +++ b/rc5-72/x86/r72-dgp4.asm @@ -3,7 +3,7 @@ ; Any other distribution or use of this source violates copyright. ; ; Author: Décio Luiz Gazzoni Filho -; $Id: r72-dgp4.asm,v 1.5 2003/09/12 22:29:27 mweiser Exp $ +; $Id: r72-dgp4.asm,v 1.6 2003/11/01 14:20:15 mweiser Exp $ %ifdef __OMF__ ; Borland and Watcom compilers/linkers [SECTION _TEXT FLAT USE32 align=16 CLASS=CODE] diff --git a/rc5-72/x86/r72-ma4.asm b/rc5-72/x86/r72-ma4.asm new file mode 100644 index 000000000..f01ae633c --- /dev/null +++ b/rc5-72/x86/r72-ma4.asm @@ -0,0 +1,851 @@ +; Copyright distributed.net 1997-2003 - All Rights Reserved +; For use in distributed.net projects only. +; Any other distribution or use of this source violates copyright. +; +; MMX Extentions: Matt Andrews 2003/09/17 +; Author: Slawomir Piotrowski +; Version 1.0 2003/09/08 23:53 +; +; Based on dg-3 by Décio Luiz Gazzoni Filho +; $Id: r72-ma4.asm,v 1.2 2003/11/01 14:20:15 mweiser Exp $ + +; SIMD Core Idea +; The only areas of the CPU that former cores have not utilized are the +; FPU and the MMX_* units. I have yet to figure out a way to effectively +; use the FPU for key crunching (it doesn't even have bit shift instructions) +; but the MMX_ALU has all the necessary ops but rotate. Theoretically, +; we should be able to decode a key in the MMX_ALU simultaneously with keys +; being decoded using the regular ALU. We simulate a rotate instruction by +; copying the 32-bit value we are working on to the lo and hi dwords of +; a quadword. Then when we shift the quadword left, the bits shift into the +; top dword from the bottom dword. + +; Having the stack quadword aligned could possibly increase performance, but since +; we use EBP for computation this would have to be done by the caller. + +; Register usage: +; xmm0 -- L4(0) +; xmm1 -- L4(1) +; xmm2 -- L4(2) +; xmm3 -- B4 +; xmm4 -- A4 +; xmm5 -- temp data +; xmm6 -- shiftcount +; xmm7 -- shift mask + +%ifdef __OMF__ ; Borland and Watcom compilers/linkers +[SECTION _TEXT FLAT USE32 align=16 CLASS=CODE] +%else +[SECTION .text] +%endif + +[GLOBAL _rc5_72_unit_func_ma_4] +[GLOBAL rc5_72_unit_func_ma_4] + +%define RESULT_NOTHING 1 +%define RESULT_FOUND 2 + +%assign work_size 0 + +%macro defidef 2 + %define %1 esp+%2 +%endmacro + +%macro defwork 1-2 1 + defidef %1,work_size + %assign work_size work_size+4*(%2) +%endmacro + +defwork work_l,3*3 +defwork work_s,4*26 +defwork work_backup_l,4*3 +defwork temp, 4 +defwork work_P_0 +defwork work_P_1 +defwork work_C_0 +defwork work_C_1 +defwork work_iterations +defwork save_ebx +defwork save_esi +defwork save_edi +defwork save_ebp +defwork save_esp + +%define RC5_72UnitWork_plainhi eax+0 +%define RC5_72UnitWork_plainlo eax+4 +%define RC5_72UnitWork_cipherhi eax+8 +%define RC5_72UnitWork_cipherlo eax+12 +%define RC5_72UnitWork_L0hi eax+16 +%define RC5_72UnitWork_L0mid eax+20 +%define RC5_72UnitWork_L0lo eax+24 +%define RC5_72UnitWork_CMCcount eax+28 +%define RC5_72UnitWork_CMChi eax+32 +%define RC5_72UnitWork_CMCmid eax+36 +%define RC5_72UnitWork_CMClo eax+40 + +%define RC5_72UnitWork esp+work_size+4 +%define iterations esp+work_size+8 + +%define S1(N) [work_s+((N)*4*4)] +%define S2(N) [work_s+((N)*4*4)+4] +%define S3(N) [work_s+((N)*4*4)+8] +%define S4(N) [work_s+((N)*4*4)+12] +%define L1(N) [work_l+((N)*3*4)] +%define L2(N) [work_l+((N)*3*4)+4] +%define L3(N) [work_l+((N)*3*4)+8] +;%define L4(N) [work_l+((N)*4*4)+12] +%define L1backup(N) [work_backup_l+((N)*4*4)] +%define L2backup(N) [work_backup_l+((N)*4*4)+4] +%define L3backup(N) [work_backup_l+((N)*4*4)+8] +%define L4backup(N) [work_backup_l+((N)*4*4)+12] + +%define A1 eax +%define A2 ebx +%define A3 edx +%define B1 esi +%define B2 edi +%define B3 ebp +%define shiftreg ecx +%define shiftcount cl + + +%define P 0xB7E15163 +%define Q 0x9E3779B9 +%define S_not(N) (P+Q*(N)) + +; Having a quadword-based value table provides considerable speedups for the SIMD extentions + align 8 + InitTable dd 0xb7e15163, 0xb7e15163 + dd 0x5618cb1c, 0x5618cb1c + dd 0xf45044d5, 0xf45044d5 + dd 0x9287be8e, 0x9287be8e + dd 0x30bf3847, 0x30bf3847 + dd 0xcef6b200, 0xcef6b200 + dd 0x6d2e2bb9, 0x6d2e2bb9 + dd 0x0b65a572, 0x0b65a572 + dd 0xa99d1f2b, 0xa99d1f2b + dd 0x47d498e4, 0x47d498e4 + dd 0xe60c129d, 0xe60c129d + dd 0x84438c56, 0x84438c56 + dd 0x227b060f, 0x227b060f + dd 0xc0b27fc8, 0xc0b27fc8 + dd 0x5ee9f981, 0x5ee9f981 + dd 0xfd21733a, 0xfd21733a + dd 0x9b58ecf3, 0x9b58ecf3 + dd 0x399066ac, 0x399066ac + dd 0xd7c7e065, 0xd7c7e065 + dd 0x75ff5a1e, 0x75ff5a1e + dd 0x1436d3d7, 0x1436d3d7 + dd 0xb26e4d90, 0xb26e4d90 + dd 0x50a5c749, 0x50a5c749 + dd 0xeedd4102, 0xeedd4102 + dd 0x8d14babb, 0x8d14babb + dd 0x2b4c3474, 0x2b4c3474 + + +%macro k7nop 1 + %if %1>3 + %error k7nop max 3 + %endif + %if %1>2 + rep + %endif + %if %1>1 + rep + %endif + nop +%endmacro + +%macro k7align 1 + %assign unal ($-startseg)&(%1-1) + %if unal + %assign fill %1 - unal + %if fill<=9 + %rep 3 + %if fill>3 + k7nop 3 + %assign fill fill-3 + %else + k7nop fill + %exitrep + %endif + %endrep + %else + jmp short %%alend + align %1 + %endif + %endif + %%alend: +%endmacro + +%macro KEYSETUP_BLOCK 3 + movdqa xmm6, xmm3 + + mov S1(%2), A1 + movd S4(%2), xmm4 ; KEY 4 + mov S2(%2), A2 + mov S3(%2), A3 + + lea shiftreg, [A1+B1] ; KEY 1 + paddd xmm6, xmm4 ; KEY 4 + add B1, L1(%3) ; KEY 1 + pand xmm6, xmm7 ; KEY 4 + add B1, A1 ; KEY 1 + rol B1, shiftcount ; KEY 1 + paddd xmm3, xmm%3 ; KEY 4 + +%ifidn %1,S + movd xmm5, S4(%2+1) ; KEY 4 +%else + movq xmm5, [InitTable + (%2 + 1) * 8] ; KEY 4 +%endif + + lea shiftreg, [A2+B2] ; KEY 2 + paddd xmm3, xmm4 ; KEY 4 + add B2, L2(%3) ; KEY 2 + psllq xmm3, xmm6 ; KEY 4 + add B2, A2 ; KEY 2 + +%ifidn %1,S + add A1, S1(%2+1) ; KEY 1 +%else + add A1, S_not(%2+1) ; KEY 1 +%endif + + rol B2, shiftcount ; KEY 2 + + lea shiftreg, [A3+B3] ; KEY 3 + add B3, L3(%3) ; KEY 3 + pshuflw xmm3, xmm3, 0xEE ; KEY 4 + add B3, A3 ; KEY 3 + +%ifidn %1,S + add A2, S2(%2+1) ; KEY 2 +%else + add A2, S_not(%2+1) ; KEY 2 +%endif + + rol B3, shiftcount ; KEY 3 + + + add A1, B1 + mov L1(%3), B1 + rol A1, 3 + + paddd xmm4, xmm5 + + add A2, B2 + +%ifid %1, S + pshuflw xmm4, xmm4, 0x44 +%endif + + mov L2(%3), B2 + + paddd xmm4, xmm3 + + rol A2, 3 ; rol1 (2) + + movdqa xmm%3, xmm3 + +%ifidn %1,S ; count2 (3) + add A3, S3(%2+1) +%else + add A3, S_not(%2+1) +%endif + add A3, B3 + psllq xmm4, 3 + mov L3(%3), B3 + + rol A3, 3 ; rol1 (3) + + pshuflw xmm4, xmm4, 0xEE +%endmacro + +%macro KEYSETUP_BLOCK_PRE 1 + psllq xmm4, 3 + rol A1, 3 + rol A2, 3 + pshuflw xmm4, xmm4, 0xEE + rol A3, 3 + +%ifnidn %1,-1 + mov L1(%1), B1 + mov L2(%1), B2 + mov L3(%1), B3 + movdqa xmm%1, xmm3 +%endif +%endmacro + +%macro KEYSETUP_BLOCK_POST 1 +%endmacro + + +%macro ENCRYPTION_BLOCK 1 + mov shiftreg, B1 + xor A1, B1 + movdqa xmm6, xmm3 + xor A2, B2 + rol A1, shiftcount + + movd xmm5, S4(2*%1) + mov shiftreg, B2 + xor A3, B3 + rol A2, shiftcount + + pand xmm6, xmm7 + mov shiftreg, B3 + pxor xmm4, xmm3 + rol A3, shiftcount + + psllq xmm4, xmm6 + add A1, S1(2*%1) + add A2, S2(2*%1) + pshuflw xmm4, xmm4, 0xEE + add A3, S3(2*%1) + paddd xmm4, xmm5 + pshufd xmm4, xmm4, 0xE0 + + mov shiftreg, A1 + xor B1, A1 + movdqa xmm6, xmm4 + xor B2, A2 + rol B1, shiftcount + pand xmm6, xmm7 + + mov shiftreg, A2 + pxor xmm3, xmm4 + xor B3, A3 + psllq xmm3, xmm6 + rol B2, shiftcount + + ; We could move S3(2*%1 + 1) quadword here, and then we wouldn't need the + ; pshuflw xmm3, xmm3, 0xEE below. However, this will only improve time if + ; the entire quadword happens to be in cache, which from testing doesn't + ; appear to often be the case. + movd xmm5, S4(2*%1 + 1) + + mov shiftreg, A3 + add B1, S1(2*%1+1) + rol B3, shiftcount + + pshuflw xmm3, xmm3, 0xEE + add B2, S2(2*%1+1) + paddd xmm3, xmm5 + + add B3, S3(2*%1+1) + pshuflw xmm3, xmm3, 0x44 +%endmacro + +%macro DEBUG_CHECK_AB 0 + movd A1, xmm4 + movd A2, xmm3 + cmp A3, A1 + cmp B3, A2 + int 3 +%endmacro + +align 16 + +startseg: +rc5_72_unit_func_ma_4: +rc5_72_unit_func_ma_4_: +_rc5_72_unit_func_ma_4: + + sub esp, work_size + + mov eax, [RC5_72UnitWork] + mov [save_ebp], ebp + mov [save_ebx], ebx + mov [save_esi], esi + mov [save_edi], edi + + mov esi, [RC5_72UnitWork_plainlo] + mov edi, [RC5_72UnitWork_plainhi] + + mov ebx, [RC5_72UnitWork_cipherlo] + mov ecx, [RC5_72UnitWork_cipherhi] + + mov edx, [iterations] + + mov [work_P_0], esi + mov [work_P_1], edi + mov esi, [RC5_72UnitWork_L0hi] + + mov [work_C_0], ebx + mov [work_C_1], ecx + mov edi, [edx] + + mov ecx, [RC5_72UnitWork_L0mid] + mov ebx, [RC5_72UnitWork_L0lo] + + mov [work_iterations], edi + mov L1(2), esi + mov L1backup(2), esi + + add esi, 1 + + mov L2(2), esi + mov L2backup(2), esi + + add esi, 1 + + mov L3(2), esi + mov L3backup(2), esi + + add esi, 1 + movd xmm2, esi + mov L4backup(2), esi + pshuflw xmm2, xmm2, 0x44 + + mov L1(1), ecx + mov L2(1), ecx + mov L3(1), ecx + movd xmm1, ecx + mov L1backup(1), ecx + mov L2backup(1), ecx + mov L3backup(1), ecx + mov L4backup(1), ecx + pshuflw xmm1, xmm1, 0x44 + + mov L1(0), ebx + mov L2(0), ebx + mov L3(0), ebx + movd xmm0, ebx + mov L1backup(0), ebx + mov L2backup(0), ebx + mov L3backup(0), ebx + mov L4backup(0), ebx + pshuflw xmm0, xmm0, 0x44 + + mov dword [temp], 0x0000001F + movd xmm7, [temp] +k7align 16 +key_setup_1: + mov B1, L1(0) + mov A1, 0xBF0A8B1D ; 0xBF0A8B1D is S[0] + add B1, 0xBF0A8B1D + mov A2, A1 + ror B1, 3 + mov B2, B1 + mov B3, B1 + movd xmm3, B1 + + mov A3, A1 + movd xmm4, A1 + + mov S1(0), A1 + mov S2(0), A1 + pshuflw xmm3, xmm3, 0x44 + mov S3(0), A1 + mov S4(0), A1 + + ;mov dword [temp], S_not(1) + ;movd xmm5, [temp] + movq xmm5, [InitTable + 8] + lea A1, [A1 + B1 + S_not(1)] + paddd xmm4, xmm3 + lea A2, [A2 + B2 + S_not(1)] + paddd xmm4, xmm5 + lea A3, [A3 + B3 + S_not(1)] + pshufd xmm4, xmm4, 0xE0 + + KEYSETUP_BLOCK_PRE 0 + KEYSETUP_BLOCK S_not,1,1 + KEYSETUP_BLOCK S_not,2,2 + KEYSETUP_BLOCK S_not,3,0 + KEYSETUP_BLOCK S_not,4,1 + KEYSETUP_BLOCK S_not,5,2 + KEYSETUP_BLOCK S_not,6,0 + KEYSETUP_BLOCK S_not,7,1 + KEYSETUP_BLOCK S_not,8,2 + KEYSETUP_BLOCK S_not,9,0 + KEYSETUP_BLOCK S_not,10,1 + KEYSETUP_BLOCK S_not,11,2 + KEYSETUP_BLOCK S_not,12,0 + KEYSETUP_BLOCK S_not,13,1 + KEYSETUP_BLOCK S_not,14,2 + KEYSETUP_BLOCK S_not,15,0 + KEYSETUP_BLOCK S_not,16,1 + KEYSETUP_BLOCK S_not,17,2 + KEYSETUP_BLOCK S_not,18,0 + KEYSETUP_BLOCK S_not,19,1 + KEYSETUP_BLOCK S_not,20,2 + KEYSETUP_BLOCK S_not,21,0 + KEYSETUP_BLOCK S_not,22,1 + KEYSETUP_BLOCK S_not,23,2 + KEYSETUP_BLOCK S_not,24,0 + KEYSETUP_BLOCK_POST 0 + + add B1, A1 + + mov S1(25), A1 + mov S2(25), A2 + mov S3(25), A3 + movd S4(25), xmm4 + + paddd xmm3, xmm4 + + mov shiftreg, B1 + movdqa xmm6, xmm3 + add B1, L1(1) + + add A1, S1(0) + rol B1, shiftcount + + add B2, A2 + pand xmm6, xmm7 + paddd xmm3, xmm1 + movd xmm5, S4(0) + mov shiftreg, B2 + + + paddd xmm4, xmm5 + + add B2, L2(1) + pshuflw xmm4, xmm4, 0x44 + add B3, A3 + + rol B2, shiftcount + + + mov shiftreg, B3 + psllq xmm3, xmm6 + add B3, L3(1) + pshuflw xmm3, xmm3, 0xEE + rol B3, shiftcount + + paddd xmm4, xmm3 + add A2, S2(0) + add A3, S3(0) + add A1, B1 + mov L1(1), B1 + add A2, B2 + mov L2(1), B2 + add A3, B3 + mov L3(1), B3 + + movdqa xmm1, xmm3 + +key_setup_2: + + KEYSETUP_BLOCK_PRE -1 + KEYSETUP_BLOCK S,0,2 + KEYSETUP_BLOCK S,1,0 + KEYSETUP_BLOCK S,2,1 + KEYSETUP_BLOCK S,3,2 + KEYSETUP_BLOCK S,4,0 + KEYSETUP_BLOCK S,5,1 + KEYSETUP_BLOCK S,6,2 + KEYSETUP_BLOCK S,7,0 + KEYSETUP_BLOCK S,8,1 + KEYSETUP_BLOCK S,9,2 + KEYSETUP_BLOCK S,10,0 + KEYSETUP_BLOCK S,11,1 + KEYSETUP_BLOCK S,12,2 + KEYSETUP_BLOCK S,13,0 + KEYSETUP_BLOCK S,14,1 + KEYSETUP_BLOCK S,15,2 + KEYSETUP_BLOCK S,16,0 + KEYSETUP_BLOCK S,17,1 + KEYSETUP_BLOCK S,18,2 + KEYSETUP_BLOCK S,19,0 + KEYSETUP_BLOCK S,20,1 + KEYSETUP_BLOCK S,21,2 + KEYSETUP_BLOCK S,22,0 + KEYSETUP_BLOCK S,23,1 + KEYSETUP_BLOCK S,24,2 + KEYSETUP_BLOCK_POST 2 + + add B1, A1 + + mov S1(25), A1 + mov S2(25), A2 + mov S3(25), A3 + movd S4(25), xmm4 + + movd xmm5, S4(0) + mov shiftreg, B1 + paddd xmm3, xmm4 + movdqa xmm6, xmm3 + paddd xmm3, xmm0 + add B1, L1(0) + + add A1, S1(0) + pand xmm6, xmm7 + paddd xmm4, xmm5 + rol B1, shiftcount + + add B2, A2 + pshufd xmm4, xmm4, 0xE0 + mov shiftreg, B2 + + add B2, L2(0) + + psllq xmm3, xmm6 + add B3, A3 + + rol B2, shiftcount + mov shiftreg, B3 + pshufd xmm3, xmm3, 0xE5 + add B3, L3(0) + + rol B3, shiftcount + + add A2, S2(0) + add A3, S3(0) + + paddd xmm4, xmm3 + add A1, B1 + mov L1(0), B1 + add A2, B2 + mov L2(0), B2 + add A3, B3 + mov L3(0), B3 + movdqa xmm0, xmm3 + +key_setup_3: + + KEYSETUP_BLOCK_PRE -1 + KEYSETUP_BLOCK S,0,1 + KEYSETUP_BLOCK S,1,2 + KEYSETUP_BLOCK S,2,0 + KEYSETUP_BLOCK S,3,1 + KEYSETUP_BLOCK S,4,2 + KEYSETUP_BLOCK S,5,0 + KEYSETUP_BLOCK S,6,1 + KEYSETUP_BLOCK S,7,2 + KEYSETUP_BLOCK S,8,0 + KEYSETUP_BLOCK S,9,1 + KEYSETUP_BLOCK S,10,2 + KEYSETUP_BLOCK S,11,0 + KEYSETUP_BLOCK S,12,1 + KEYSETUP_BLOCK S,13,2 + KEYSETUP_BLOCK S,14,0 + KEYSETUP_BLOCK S,15,1 + KEYSETUP_BLOCK S,16,2 + KEYSETUP_BLOCK S,17,0 + KEYSETUP_BLOCK S,18,1 + KEYSETUP_BLOCK S,19,2 + KEYSETUP_BLOCK S,20,0 + KEYSETUP_BLOCK S,21,1 + KEYSETUP_BLOCK S,22,2 + KEYSETUP_BLOCK S,23,0 + KEYSETUP_BLOCK S,24,1 + KEYSETUP_BLOCK_POST 1 + + mov S1(25), A1 + mov S2(25), A2 + mov S3(25), A3 + movd S4(25), xmm4 + +; A1 = rc5_72unitwork->plain.lo + S1[0]; +; A2 = rc5_72unitwork->plain.lo + S2[0]; +; B1 = rc5_72unitwork->plain.hi + S1[1]; +; B2 = rc5_72unitwork->plain.hi + S2[1]; + +encryption: + + mov A1, [work_P_0] + mov B1, [work_P_1] + movd xmm4, A1 + mov A2, A1 + mov A3, A1 + + movd xmm3, B1 + mov B2, B1 + movd xmm5, S4(0) + mov B3, B1 + + paddd xmm4, xmm5 + add A1, S1(0) + add A2, S2(0) + pshuflw xmm4, xmm4, 0x44 + add A3, S3(0) + + movd xmm5, S4(1) + add B1, S1(1) + paddd xmm3, xmm5 + add B2, S2(1) + pshuflw xmm3, xmm3, 0x44 + add B3, S3(1) + + ENCRYPTION_BLOCK 1 + ENCRYPTION_BLOCK 2 + ENCRYPTION_BLOCK 3 + ENCRYPTION_BLOCK 4 + ENCRYPTION_BLOCK 5 + ENCRYPTION_BLOCK 6 + ENCRYPTION_BLOCK 7 + ENCRYPTION_BLOCK 8 + ENCRYPTION_BLOCK 9 + ENCRYPTION_BLOCK 10 + ENCRYPTION_BLOCK 11 + ENCRYPTION_BLOCK 12 + + ;DEBUG_CHECK_AB + +test_key: + cmp A1, [work_C_0] + mov eax, [RC5_72UnitWork] + je near test_key_1 +back_after_key_1: + cmp A2, [work_C_0] + je near test_key_2 +back_after_key_2: + cmp A3, [work_C_0] + je near test_key_3 +back_after_key_3: + movd A2, xmm4 + cmp A2, [work_C_0] + je near test_key_4 +back_after_key_4: + mov edx, [RC5_72UnitWork_L0hi] + +inc_key: + xor edi, edi + movzx esi, dl + mov ecx, 1 + and edx, 0xFFFFFF00 + add esi, 4 + and esi, 0xFF + cmove edi, ecx + or edx, esi + mov [RC5_72UnitWork_L0hi], edx + + mov ebx, [RC5_72UnitWork_L0mid] + mov ecx, [RC5_72UnitWork_L0lo] + bswap ebx + bswap ecx + add ebx, edi + adc ecx, 0 + bswap ebx + bswap ecx + mov [RC5_72UnitWork_L0mid], ebx + mov [RC5_72UnitWork_L0lo], ecx + + mov L1(2), edx + mov L1backup(2), edx + add edx, 1 + mov L2(2), edx + mov L2backup(2), edx + add edx, 1 + mov L3(2), edx + mov L3backup(2), edx + add edx, 1 + movd xmm2, edx + mov L4backup(2), edx + pshuflw xmm2, xmm2, 0x44 + + mov L1(1), ebx + mov L2(1), ebx + mov L3(1), ebx + movd xmm1, ebx + mov L1backup(1), ebx + mov L2backup(1), ebx + mov L3backup(1), ebx + mov L4backup(1), ebx + pshuflw xmm1, xmm1, 0x44 + + mov L1(0), ecx + mov L2(0), ecx + mov L3(0), ecx + movd xmm0, ecx + mov L1backup(0), ecx + mov L2backup(0), ecx + mov L3backup(0), ecx + mov L4backup(0), ecx + pshuflw xmm0, xmm0, 0x44 + + sub dword [work_iterations], 4 + + ja key_setup_1 + + mov eax, RESULT_NOTHING +finished: + mov ebx, [save_ebx] + mov esi, [save_esi] + + mov edi, [save_edi] + mov ebp, [save_ebp] + add esp, work_size + + ret +test_key_1: + add dword [RC5_72UnitWork_CMCcount], 1 + mov ecx, L1backup(2) + mov [RC5_72UnitWork_CMChi], ecx + mov ecx, L1backup(1) + mov [RC5_72UnitWork_CMCmid], ecx + mov ecx, L1backup(0) + mov [RC5_72UnitWork_CMClo], ecx + + cmp B1, [work_C_1] + jne back_after_key_1 + + mov ecx, [work_iterations] + mov esi, [iterations] + + sub [esi], ecx + mov eax, RESULT_FOUND + jmp finished + +test_key_2: + mov esi, L2backup(2) + mov ecx, L2backup(1) + mov ebx, L2backup(0) + add dword [RC5_72UnitWork_CMCcount], 1 + mov [RC5_72UnitWork_CMChi], esi + mov [RC5_72UnitWork_CMCmid], ecx + mov [RC5_72UnitWork_CMClo], ebx + + cmp B2, [work_C_1] + jne back_after_key_2 + + mov ecx, [work_iterations] + mov esi, [iterations] + + sub ecx, 1 + sub [esi], ecx + mov eax, RESULT_FOUND + jmp finished + +test_key_3: + mov esi, L3backup(2) + mov ecx, L3backup(1) + mov ebx, L3backup(0) + add dword [RC5_72UnitWork_CMCcount], 1 + mov [RC5_72UnitWork_CMChi], esi + mov [RC5_72UnitWork_CMCmid], ecx + mov [RC5_72UnitWork_CMClo], ebx + + cmp B3, [work_C_1] + jne back_after_key_3 + + mov ecx, [work_iterations] + mov esi, [iterations] + + sub ecx, 2 + sub [esi], ecx + mov eax, RESULT_FOUND + jmp finished +test_key_4: + movd B3, xmm3 + mov esi, L4backup(2) + mov ecx, L4backup(1) + mov ebx, L4backup(0) + add dword [RC5_72UnitWork_CMCcount], 1 + mov [RC5_72UnitWork_CMChi], esi + mov [RC5_72UnitWork_CMCmid], ecx + mov [RC5_72UnitWork_CMClo], ebx + + cmp B3, [work_C_1] + jne back_after_key_4 + + mov ecx, [work_iterations] + mov esi, [iterations] + + sub ecx, 3 + sub [esi], ecx + mov eax, RESULT_FOUND + jmp finished diff --git a/rc5-72/x86/r72-ses2.asm b/rc5-72/x86/r72-ses2.asm index 10f73528c..a73eebd08 100644 --- a/rc5-72/x86/r72-ses2.asm +++ b/rc5-72/x86/r72-ses2.asm @@ -4,7 +4,7 @@ ; For use by distributed.net. I do request that any ; changes to this core are also emailed to Samuel@Lightspeed.cx -; $Id: r72-ses2.asm,v 1.4 2003/09/12 22:29:27 mweiser Exp $ +; $Id: r72-ses2.asm,v 1.5 2003/11/01 14:20:15 mweiser Exp $ %ifdef __OMF__ ; Borland and Watcom compilers/linkers [SECTION _TEXT FLAT USE32 align=16 CLASS=CODE] diff --git a/rc5/ansi/2-rg.c b/rc5/ansi/2-rg.c index c2df94ff2..d0a2cdda1 100644 --- a/rc5/ansi/2-rg.c +++ b/rc5/ansi/2-rg.c @@ -18,7 +18,7 @@ #if (!defined(lint) && defined(__showids__)) const char *rc5ansi2_rg_cpp (void) { -return "@(#)$Id: 2-rg.c,v 1.10 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: 2-rg.c,v 1.11 2003/11/01 14:20:15 mweiser Exp $"; } #endif #include "cputypes.h" diff --git a/rc5/ansi/rc5ansi_1-b2.cpp b/rc5/ansi/rc5ansi_1-b2.cpp index ade2809aa..d058e3c3a 100644 --- a/rc5/ansi/rc5ansi_1-b2.cpp +++ b/rc5/ansi/rc5ansi_1-b2.cpp @@ -13,7 +13,7 @@ #if (!defined(lint) && defined(__showids__)) const char *rc5ansi_1_b2_cpp (void) { -return "@(#)$Id: rc5ansi_1-b2.cpp,v 1.4 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: rc5ansi_1-b2.cpp,v 1.5 2003/11/01 14:20:15 mweiser Exp $"; } #endif #define PIPELINE_COUNT = 1 diff --git a/rc5/ansi/rc5ansi_1-rg.cpp b/rc5/ansi/rc5ansi_1-rg.cpp index 769963e61..54be59a0e 100644 --- a/rc5/ansi/rc5ansi_1-rg.cpp +++ b/rc5/ansi/rc5ansi_1-rg.cpp @@ -15,7 +15,7 @@ #if (!defined(lint) && defined(__showids__)) const char *rc5ansi_1_rg_cpp (void) { -return "@(#)$Id: rc5ansi_1-rg.cpp,v 1.4 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: rc5ansi_1-rg.cpp,v 1.5 2003/11/01 14:20:15 mweiser Exp $"; } #endif #define PIPELINE_COUNT = 1 diff --git a/rc5/ansi/rc5ansi_1-rg2.cpp b/rc5/ansi/rc5ansi_1-rg2.cpp index b71568a98..5aaa3f144 100644 --- a/rc5/ansi/rc5ansi_1-rg2.cpp +++ b/rc5/ansi/rc5ansi_1-rg2.cpp @@ -17,7 +17,7 @@ #if (!defined(lint) && defined(__showids__)) const char *rc5ansi_1_rg_cpp (void) { -return "@(#)$Id: rc5ansi_1-rg2.cpp,v 1.4 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: rc5ansi_1-rg2.cpp,v 1.5 2003/11/01 14:20:15 mweiser Exp $"; } #endif #define PIPELINE_COUNT = 1 diff --git a/rc5/ansi/rc5ansi_2-b2.cpp b/rc5/ansi/rc5ansi_2-b2.cpp index 77a4699d2..d4c12ac37 100644 --- a/rc5/ansi/rc5ansi_2-b2.cpp +++ b/rc5/ansi/rc5ansi_2-b2.cpp @@ -13,7 +13,7 @@ #if (!defined(lint) && defined(__showids__)) const char *rc5ansi_2_b2_cpp (void) { -return "@(#)$Id: rc5ansi_2-b2.cpp,v 1.4 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: rc5ansi_2-b2.cpp,v 1.5 2003/11/01 14:20:15 mweiser Exp $"; } #endif #define PIPELINE_COUNT = 2 diff --git a/rc5/ansi/rc5ansi_2-bo1.cpp b/rc5/ansi/rc5ansi_2-bo1.cpp index edfb25f03..15558b65c 100644 --- a/rc5/ansi/rc5ansi_2-bo1.cpp +++ b/rc5/ansi/rc5ansi_2-bo1.cpp @@ -15,7 +15,7 @@ #if (!defined(lint) && defined(__showids__)) const char *rc5ansi_2_bo1_cpp (void) { -return "@(#)$Id: rc5ansi_2-bo1.cpp,v 1.4 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: rc5ansi_2-bo1.cpp,v 1.5 2003/11/01 14:20:15 mweiser Exp $"; } #endif #define PIPELINE_COUNT = 2 diff --git a/rc5/ansi/rc5ansi_2-rg.cpp b/rc5/ansi/rc5ansi_2-rg.cpp index f2119df93..bd25e2819 100644 --- a/rc5/ansi/rc5ansi_2-rg.cpp +++ b/rc5/ansi/rc5ansi_2-rg.cpp @@ -20,7 +20,7 @@ */ #if (!defined(lint) && defined(__showids__)) const char *rc5ansi_2_rg_cpp (void) { -return "@(#)$Id: rc5ansi_2-rg.cpp,v 1.7 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: rc5ansi_2-rg.cpp,v 1.8 2003/11/01 14:20:15 mweiser Exp $"; } #endif // //*Run-time generation of S0[] : diff --git a/rc5/ansi/rc5ansi_4-rg.cpp b/rc5/ansi/rc5ansi_4-rg.cpp index f417ef9f9..53c5f339c 100644 --- a/rc5/ansi/rc5ansi_4-rg.cpp +++ b/rc5/ansi/rc5ansi_4-rg.cpp @@ -17,7 +17,7 @@ */ #if (!defined(lint) && defined(__showids__)) const char *rc5ansi_4_rg_cpp (void) { -return "@(#)$Id: rc5ansi_4-rg.cpp,v 1.3 2003/09/12 22:29:27 mweiser Exp $"; } +return "@(#)$Id: rc5ansi_4-rg.cpp,v 1.4 2003/11/01 14:20:15 mweiser Exp $"; } #endif // //*Run-time generation of S0[] : diff --git a/rc5/ansi/rotate.h b/rc5/ansi/rotate.h index b832ac153..6a8576329 100644 --- a/rc5/ansi/rotate.h +++ b/rc5/ansi/rotate.h @@ -2,9 +2,12 @@ // For use in distributed.net projects only. // Any other distribution or use of this source violates copyright. // -// $Id: rotate.h,v 1.8 2003/09/12 22:29:27 mweiser Exp $ +// $Id: rotate.h,v 1.9 2003/11/01 14:20:15 mweiser Exp $ // // $Log: rotate.h,v $ +// Revision 1.9 2003/11/01 14:20:15 mweiser +// merge forward changes from release-2-90xx +// // Revision 1.8 2003/09/12 22:29:27 mweiser // merge release-2-90xx as of 20030913 back into HEAD //