Unix Technical Digest V1 #20
Ron Heiby (The Moderator)
unix-request at cbosgd.UUCP
Thu Mar 14 13:47:55 AEST 1985
Unix Technical Digest Thu, 14 Mar 85 Volume 1 : Issue 20
Today's Topics:
accessing libm.a via pascal
Boot problems w/ new kernal and uda50
ctype_.o in /lib/libc.a wrong in 4.2BSD?
Easy 50 ips on TU80 (4.2bsd /etc/dump)
----------------------------------------------------------------------
Date: 12 Mar 85 03:19:20 GMT
From: gr at watcgl.UUCP (Gr Teaching Package)
Subject: accessing libm.a via pascal
Students in one of my courses are using Pascal under
Berkeley 4.2. They need to access several
functions in the math library, but there doesn't seem
to be an efficient, warning free technique.
It seems that ``pc'' knows about the ``libm.a'' functions
because it gives a duplicate definition warning if
one defines such a function as external as is normally done
for user-defined, external procedures. In spite of the warning,
the math routine is linked correctly.
If the external definition is omitted, ``pc'' generates
an error message about the undefined function.
I know of 2 methods to get around the warning:
1) Call an intermediate C function, ``foo'' that
calls the appropriate math library routine.
2) Simulate the math routine in Pascal. Unfortunately
this won't work for a function like ``pow(x,y)''
because its internal code sets a PSW flag (via an
asm directive) to ignore underflow (generated when
0<x<1 and y is quite large).
Is there a clean, efficient solution to this
problem, or will we have to live with the
warning messages? Why does ``pc'' check ``libm.a''
definitions when it seemingly won't let the user
call its functions directly?
------------------------------
Date: 8 Mar 85 20:44:31 GMT
From: root at ncsu.UUCP (The Deity)
Subject: Boot problems w/ new kernal and uda50
We have 3 brand new ra81 disc drives that were just installed
on our vax11/780 (4.2bsd) here at NCSU. They were installed on uba0
and the new kernal compiles just fine, HOWEVER, when we attempt to boot
on it, we get the following messages:
-----------------------------------------------------------
>>>BOOT ANY
CPU HALTED
INIT SEQ DONE
LOAD DONE, 00004C00 BYTES LOADED
Boot
: hp(0,0)vmunix.new
176460+62512+38416 start 0x11a4
?INT-STK INVLD
HALTED AT 8000CCCE
>>>
-----------------------------------------------------------
This has caused us considerable problems, and we have been
unable to trace down the problem. We have been told that the error
message is Interrupt-Stack Invalid. The uda50 for the ra81's is on
the front end of uba0, and we also have a digital sound system
installed (if that makes any difference).
If you have ever seen or heard of anything like this please
write back quickly (and send a phone number), or call me at home
(919) 872-0494 over the weekend (collect, if necessary).
Any help would be appreciated. As usual, thanks ahead of time.
- jamie evans - decvax!mcnc!ncsu!jle - off: (919) 737-2336
------------------------------
Date: 11 Mar 85 16:37:32 GMT
From: dbr at cybvax0.UUCP (Douglas Robinson)
Subject: ctype_.o in /lib/libc.a wrong in 4.2BSD?
We have just noticed that the ascii 'SP' (or space, octal 040) is listed
as a punctuation character under 4.2BSD. I checked with a V7 compatible
system and found it to be listed as only a 'isspace' character NOT 'ispunct'.
I strongly disagree to labelling 'SP' as a punctuation character, but
before patching ctype_.o I would like to get some opinions. Please mail
to me. I will summarize... Please - most importantly: will removing this
from the list of punctuation characters break anything under 4.2BSD???
Sorry if this has been discussed before... we don't have enough space to
archive discussion newsgroups.
--
Doug Robinson Jobs don't kill programmers... programmers kill jobs!
Cybermation, Inc. 617/492-8810
377 Putnam Avenue
Cambridge, MA 02139 (USA)
...!{mit-eddie, harvard, mirror}!cybvax0!dbr
------------------------------
Date: 5 Feb 85 08:36:56 GMT
From: Don Speck <speck at cit-vax.ARPA>
Subject: Easy 50 ips on TU80 (4.2bsd /etc/dump)
A TU80 will switch into 25 ips streaming mode iff it gets at least
15 back-to-back writes, and will then try to switch into 100 ips mode.
Following is an easy patch to get 4.2bsd /etc/dump to stream a TU80
at 100 ips, every other second. It streams the tape for a second, then
shakes the disk for a second, streams, shakes, ... giving an average
throughput of about 50 ips. This was on a 750 with FPA, some raw I/O
efficiency patches (coming soon), and kernel profiling compiled in.
It will do no good on a 730 or a start/stop drive. Your speed and
line numbers may vary.
Don
diff /usr/src/etc/dump/dumptape.c dumptu80.c
22c22,24
< tblock = (char (*)[TP_BSIZE])malloc(writesize);
---
> #define CLUSTER 15 /* # of back-to-back writes to get TU80 streaming */
> ntrec *= CLUSTER; /* -- BEWARE -- when changing dumptape.c */
> tblock = (char (*)[TP_BSIZE])malloc(CLUSTER*writesize);
69,71c71,73
<
< trecno = 0;
< if (write(to, tblock[0], writesize) != writesize){
---
> char *wp = tblock[0];
> for (trecno=CLUSTER; --trecno>=0; wp+=writesize)
> if (write(to, wp, writesize) != writesize){
99,100c101,103
< asize += writesize/density;
< asize += 7;
---
> trecno = 0;
> asize += CLUSTER*writesize/density;
> asize += CLUSTER*10; /* TU80's usually stretch out IRG's */
------------------------------
End of Unix Technical Digest
******************************
--
Ronald W. Heiby / ihnp4!{wnuxa!heiby|wnuxb!netnews}
AT&T Information Systems, Inc.
Lisle, IL (CU-D21)
More information about the Mod.unix
mailing list