Sun-Spots-Request@RICE.EDU.UUCP (03/24/87)
SUN-SPOTS DIGEST Monday, 23 March 1987 Volume 5 : Issue 6 Today's Topics: hack for cleaning utmp and suntools leftovers (very long) Hoops announcement blinking disk blocks? Drivers for Burr-Brown a/d, d/a boards? Wanted: Meeting Reminder Software (sun or c srcs)? Sunview questions? (long) Video cable extension on Sun III 160? yp slave servers? fast floating point code for 68008 cpu? Addressing Very Large Framestores on Sun? Sun-2 ethernet problem? ------------------------------------------------------------------------ Date: Sat, 7 Mar 87 01:35:32 MST From: hi!josh@hc.dspo.gov (Josh) Subject: hack for cleaning utmp and suntools leftovers (very long) The following is a overnight hack to clean out utmp entries that have been left behind by suntools. It is dirty and ugly and should have been done MUCH better but at the time I was not as clean a programmer as I am now.. :-) --Josh Siegel P.S. Is their a account called scimitar their? If so, give them a buzz.... ---- # This is a shell archive. # Remove everything above and including the cut line. # Then run the rest of the file through sh. -----cut here-----cut here-----cut here-----cut here----- #!/bin/sh # shar: Shell Archiver # Run the following text with /bin/sh to create: # rename # This archive created: Sat Mar 7 01:33:29 1987 echo shar: creating directory rename mkdir rename chdir rename echo shar: extracting Makefile '(173 characters)' sed 's/^XX//' << \SHAR_EOF > Makefile XXCC=cc -O -DUNSEC XX XXrename:rename.o getopt.o XX ${CC} -o rename rename.o getopt.o XX XXgetopt.o:getopt.c XX ${CC} -DVMUNIX -c getopt.c XX XXclean: XX @rm -f .B* *.o rename XX @echo cleaned SHAR_EOF if test 173 -ne "`wc -c Makefile`" then echo shar: error transmitting Makefile '(should have been 173 characters)' fi echo shar: extracting README '(1740 characters)' sed 's/^XX//' << \SHAR_EOF > README XX RENAME version 1.0 XX XXRename is a program that is designed to let people changed the XX/etc/utmp entries and values so that a person get rid of the suntool XXturds left by shelltool when exiting from a window. XX XXCurrently there is only one compilation option and that is UNSEC. If XXyou compile rename.c with UNSEC defined it will take out most of the XXsecurity checking and let the program do as much as anybody with half XXand brain and can program can do. With it defined you can change ANY XXtty entry including ttys that are not being used. This means that if XXyou are on a Sun, you can change anything you want except for the idle XXtimes. To change the idle times you have to own the tty or be root due XXto the fact I go out and change the actual /dev/tty?? driver. XX XXI have never tested this on anything other then a SUN so I cannot tell XXyou anything about what it will do. I make no claims... your taking XXyour own life in using this at all. XX XXPlease note, while this program was designed to be helpful in clearing XXup the problem with suntool turds, it can do things that some might XXconsider good OR bad. It was developed by myself with comments from XXother people here and has been in use (with UNSEC not defined) on many XXof the Suns around campus for more then 6 months. We have found EVERY XXoption useful and one point or another. XX XXThe manual is written for having the UNSEC not defined and is not XXin the order I would have wished but.... XX XX> Please send me suggestions for how to make it better (including XX the README and manual page)... XX XX XXJosh Siegel, Research Asst. | ARPA: josh@hi.uucp@hc.dspo.gov XXElectrical and Computer Eng. | UUCP: hc!hi!josh XXUniversity of New Mexico | ucbvax!unmvax!hi!josh XXAlbuquerque, New Mexico 87131 | XX SHAR_EOF if test 1740 -ne "`wc -c README`" then echo shar: error transmitting README '(should have been 1740 characters)' fi echo shar: extracting getopt.c '(1262 characters)' sed 's/^XX//' << \SHAR_EOF > getopt.c XX/* getopt.c 1.1 85/05/30 */ XX /* getopt.c 1.1 10/26/79 11:50:14 */ XX#include <stdio.h> XX#ifdef VMUNIX XX#define strchr index XX#endif XX#define ERR(s, c) if(opterr){ fputs (argv[0], stderr); fputs (s, stderr); fputc (c, stderr); fputc ('\n', stderr); } XX XXint opterr = 1; XXint optind = 1; XXint optopt; XXchar *optarg; XXchar *strchr (); XX XXint XX getopt (argc, argv, opts) XXchar **argv, XX *opts; XX{ XX static int sp = 1; XX register c; XX register char *cp; XX XX if (sp == 1) XX if (optind >= argc || XX argv[optind][0] != '-' || argv[optind][1] == '\0') XX return EOF; XX else XX if (strcmp (argv[optind], "--") == NULL) { XX optind++; XX return EOF; XX } XX optopt = c = argv[optind][sp]; XX if (c == ':' || (cp = strchr (opts, c)) == NULL) { XX ERR (": illegal option -- ", c); XX if (argv[optind][++sp] == '\0') { XX optind++; XX sp = 1; XX } XX return '?'; XX } XX if (*++cp == ':') { XX if (argv[optind][sp + 1] != '\0') XX optarg = &argv[optind++][sp + 1]; XX else XX if (++optind >= argc) { XX ERR (": option requires an argument -- ", c); XX sp = 1; XX return '?'; XX } XX else XX optarg = argv[optind++]; XX sp = 1; XX } XX else { XX if (argv[optind][++sp] == '\0') { XX sp = 1; XX optind++; XX } XX optarg = NULL; XX } XX return c; XX} SHAR_EOF if test 1262 -ne "`wc -c getopt.c`" then echo shar: error transmitting getopt.c '(should have been 1262 characters)' fi echo shar: extracting rename.c '(3956 characters)' sed 's/^XX//' << \SHAR_EOF > rename.c XX/* XX * Rename 1.0 unmvax!crunch!josh XX */ XX#include <sys/types.h> XX#include <stdio.h> XX#include <pwd.h> XX#include <utmp.h> XX#include <sys/file.h> XX#include <sys/stat.h> XX#define USAGE "Usage: %s [-s tty ] [-t time ] [-h hostname] [-n name ] [-r tty ] [-u time] [-z] [-c]\n" XXmain(argc, argv) XX int argc; XX char **argv; XX{ XX XX int t, errflg, c, f, used; XX extern int optind; XX extern char *optarg; XX struct utmp utmp; XX time_t timep[2]; XX char buffer[255]; XX XX errflg = 0; XX used = 0; XX if (argc == 1) { XX fprintf(stderr, USAGE, argv[0]); XX exit(1); XX } XX t = ttyslot(); XX if (t > 0 && (f = open("/etc/utmp", O_RDONLY)) >= 0) { XX lseek(f, (long) (t * sizeof(utmp)), 0); XX read(f, (char *) &utmp, sizeof(utmp)); XX close(f); XX } else { XX fprintf(stderr, "Cannot read /etc/utmp\n"); XX exit(1); XX } XX sprintf(buffer, "/dev/%s", utmp.ut_line); XX while ((c = getopt(argc, argv, "r:t:s:n:h:?czu:")) != EOF) XX switch (c) { XX case 'u': XX sscanf(optarg, "%d", &used); XX timep[0] = time(0) - (used * 60); XX timep[1] = timep[0]; XX if (utime(buffer, timep) == -1) XX fprintf(stderr, "I don't own the tty %s\n", buffer); XX used = 1; XX break; XX case 'z': XX#ifndef UNSEC XX if (getuid() != 0) { XX fprintf(stderr, "You must be root to zap to utmp file.\n"); XX exit(1); XX } XX#endif UNSEC XX creat("/etc/utmp", 600); XX used = 1; XX break; XX case 'r': XX used++; XX strncpy(utmp.ut_line, optarg, 8); XX break; XX case 'n': XX used++; XX strncpy(utmp.ut_name, optarg, 8); XX break; XX case 'h': XX used++; XX if (strlen(optarg) != 1) XX strncpy(utmp.ut_host, optarg, 16); XX else if (optarg[0] == '0') XX utmp.ut_host[0] = '\0'; XX break; XX case 's': XX if (!canichange(optarg)) { XX fprintf(stderr, "I cannot change %s because I don't own the tty.\n", optarg); XX exit(1); XX } XX sprintf(buffer, "/dev/%s", optarg); XX t = findtty(optarg); XX if (t > 0 && (f = open("/etc/utmp", O_RDONLY)) >= 0) { XX lseek(f, (long) (t * sizeof(utmp)), 0); XX read(f, (char *) &utmp, sizeof(utmp)); XX close(f); XX } else { XX fprintf(stderr, "Cannot read /etc/utmp\n"); XX exit(1); XX } XX strncpy(utmp.ut_line, optarg, 8); XX used++; XX break; XX case 'c': XX used++; XX bzero((char *) &utmp, sizeof(utmp)); XX break; XX case 't': XX used++; XX sscanf(optarg, "%d", &utmp.ut_time); XX if (!utmp.ut_time) XX utmp.ut_time = time(0); XX break; XX case '?': XX default: XX errflg++; XX break; XX } XX if (!used) XX errflg++; XX if (errflg) { XX fprintf(stderr, USAGE, argv[0]); XX exit(1); XX } XX if ((f = open("/etc/utmp", O_WRONLY)) >= 0) { XX lseek(f, (long) (t * sizeof(utmp)), 0); XX write(f, (char *) &utmp, sizeof(utmp)); XX close(f); XX } else { XX fprintf(stderr, "Cannot write /etc/utmp\n"); XX exit(1); XX } XX} XXfindtty(string) XX char string[]; XX{ XX FILE *fp, *fopen(); XX char buff[255]; XX int found, t; XX XX found = 0; XX t = 0; XX XX fp = fopen("/etc/ttys", "r"); XX if (fp < 0) { XX fprintf(stderr, "Cannot access the tty file!\n"); XX exit(1); XX } XX while (!found) { XX if (fgets(buff, 255, fp) == NULL) XX break; XX t++; XX#ifdef BSD43 XX if (!strncmp(string, buff , strlen(string))) XX#else BSD43 XX if (!strncmp(string, buff + 2, strlen(string))) XX#endif BSD43 XX found = 1; XX } XX if (!found) { XX fprintf(stderr, "Cannot find requested tty!\n"); XX exit(1); XX } XX return (t); XX} XXcanichange(path) XX char path[]; XX{ XX#ifndef UNSEC XX struct stat *buf; XX struct utmp utmp; XX struct passwd *getpwuid(), *password; XX int t, f; XX XX if (getuid() == 0) XX return (1); XX stat(path, buf); XX if (buf->st_uid == getuid()) XX return (1); XX t = findtty(optarg); XX if (t > 0 && (f = open("/etc/utmp", O_RDONLY)) >= 0) { XX lseek(f, (long) (t * sizeof(utmp)), 0); XX read(f, (char *) &utmp, sizeof(utmp)); XX close(f); XX } else { XX fprintf(stderr, "Cannot read /etc/utmp\n"); XX exit(1); XX } XX password = getpwuid(getuid()); XX if (!strcmp(utmp.ut_name, password->pw_name)) XX return (1); XX else XX return (0); XX#else UNSEC XX return (1); XX#endif UNSEC XX} SHAR_EOF if test 3956 -ne "`wc -c rename.c`" then echo shar: error transmitting rename.c '(should have been 3956 characters)' fi echo shar: extracting rename.man '(2942 characters)' sed 's/^XX//' << \SHAR_EOF > rename.man XX.TH RENAME L "Mar 25, 1986" XX.SH NAME XXrename \- A hack to let you change your utmp entrys. XX.SH SYNOPSIS XX.B rename XX[-s tty] [-t time] [-h hostname] [-n name] [-r tty] [-u time] [-z] [-c] XX.SH DESCRIPTION XX.I Rename XXis a program that lets you change your utmp entry in a whole XXbunch of strange and evil ways. XX.SH RESTRICTIONS XXThe commands must be used in the order above or it will have strange XXresults (I did not put them in that order in the rest of the manual). XXRename will fail if all of these are true: 1) you are not XXroot. 2) you don't own the tty in question, or the tty entry in utmp is not XXin your name. XX.SH OPTIONS XX.TP XX-z XX.PP XXZap the utmp file. This will clear EVERYBODY's entry except your own XXout of the utmp file. XX.TP XX-u XX.PP XXLets you set the idle time for the tty in question. For this you XXmust own the tty or be the super-user. The time is in minutes. XX.TP XX-r XX.PP XXThis lets you set the mapped tty of the user . There XXare real and mapped ttys. Normally, the real and mapped ttys are the XXsame. If you put the wrong tty into the utmp file, it will map XXyour tty to the wrong tty. The effects of this are that if somebody XXdoes "talk josh" , talk will go out to the utmp file and check to XXsee what tty "josh" is on. If the wrong tty is here... it will XXwrite the page to the wrong place. SO, if I had "console" in XXmy tty entry, the person at the console would get paged. XX.TP XX-t XX.PP XXThis lets you set how long w(1) and who(1) think you have been logged in. XX.TP XX-h XX.PP XXThis lets you set the host name you logged in from. Very strange XXif a system person is trying to find where you came from (using who(1)) and XXfinds a system that does not exist. If you put a zero here, it XXwill clear the machine you logged in from and make it look like XXyou started at this machine. XX.TP XX-n XX.PP XXThis lets you set your name. It only pays attention to the first XX8 characters. Note, this name propagates through out the whole XXsystem. Doing rwho from another machine shows the changes. For the XXmost part the entire machine excepts you in this name. One of XXthe BIG exceptions is mail(1) which gets a little confused. XX.TP XX-c XX.PP XXThis lets you clear a tty. This option was the reason XX.I rename XXwas written in the first place. If you use this option it XXwill clear the tty entry from the /etc/utmp file. I use XXit for clearing old tty entrys that our suntools leaves behind. XXRemember, the -c option MUST be last. If it is not XXlast it might not clear the tty and it might leave something XXstrange behind.... XX.TP XX-s XX.PP XXThis lets you set the tty that XX.I rename XXis going to work on. You can use this to create false utmp entrys. XX XX% rename -s console -n josh -h smallsville -t 0 XX XXWill create a entry even if nobody is on the terminal. Fun eh? XXIt defaults to your current tty. XX.SH BUGS XXI would like to make it less dependent on order but have not XXgotten around to it. XX.SH FILES XX.PP XX/etc/utmp XX.PP XX/etc/ttys XX.SH AUTHOR XXJosh Siegel(ucbvax!unmvax!crunch!josh) SHAR_EOF if test 2942 -ne "`wc -c rename.man`" then echo shar: error transmitting rename.man '(should have been 2942 characters)' fi echo shar: done with directory rename chdir .. # End of shell archive exit 0 ------------------------------ Date: Mon, 9 Mar 87 21:10:26 EST From: garry@tcgould.tn.cornell.edu (Garry Wiegand) Subject: Hoops announcement ** Graphics Product Announcement ** In keeping with network etiquette, I will try to make this as brief and to-the- point as possible. Apologies in advance to anyone who may be offended (but I hope no one is!) What we have is a beast called "Hoops". Hoops is a large, 2-D/3-D, general- purpose display-list graphics subroutine library. Hoops deals with such things as lines, polygons, text, windows, colors, and cameras. It is designed to run on on many machines and many displays, and its basic purpose is to make your life easier when you sit down to write a graphics application. We've put a lot of effort into: 1) a clean design, 2) speedy program execution, and 3) keeping it cheap! Software completed: C language binding Fortran language binding Support for X-Windows (tested on Ultrix microVax/GPX's) Support for the microVax/GPX running VMS Support for the Parallax 1280 on microVax's running VMS Support for Postscript laser printers, including the Apple In progress: Pascal language binding Support for the Silicon Graphics Iris workstation Support for the Sun 3 workstation Support for the IBM 5080 on IBM mainframes Support for the Number Nine "Pro1280" on IBM PC/AT's Support for the Pixelworks "ClipperBoard" on IBM PC/AT's Commercial licenses are moderately priced, with large discounts for volume purchases. University licenses are generally priced at 25% of commercial licenses; university license fees may, under some conditions, be waived entirely. Source code is available; demo copies are available. For further information, call: Gary Wayne Flying Moose Systems & Graphics (607) 273-3690 // The Clinton House // Ithaca, New York 14850 Or send your post-office address to me. Thanks for listening - Garry Wiegand (c/o garry@oak.cadif.cornell.edu) ------------------------------ Date: Mon, 2 Mar 87 09:54:52 est From: allegra!mp@seismo.CSS.GOV Subject: blinking disk blocks? In the past few months, 2 fileservers have exhibited some strange behavior: a block of a file "blinks" between its correct value and something else. The first was on a Sun-2/150 running 3.0 with 1 Xylogics 450 driving 2 eagles. We discovered one file that had a 512-byte block that alternated (every few minutes or hours) between the correct data (a sequence of instructions) and '\252' (alternating 1's and 0's). Power-cycling the machine didn't help, replacing the controller didn't help, so Sun eventually just replaced the disk. Although we didn't have a way to tell which physical disk sector corresponded to that particular block of the file (if you have a program to do such, please send it along), the theory was that the sector had a flakey header that at times made the system retrieve that sector and at other times made it retrieve a sector from the bad block area. The 0252 is probably a pattern that diag wrote when the disk was formatted. Well, it's just happened again, on a Sun-2/170 running 2.0 with 2 Xylogics 450's, each driving 1 eagle. There's this one 163-byte-long text file that is all NULs when you cat it, but has valid data when you cat it a few minutes later. In both cases the filesystems were exported to NFS clients; the funny behavior can be seen either from the server or the clients. The fileservers' consoles didn't show any error messages. Any idea what's going on? Mark Plotnick allegra!mp ------------------------------ Date: Mon, 02 Mar 87 15:09:56 EST From: mckay@ee.ecn.purdue.edu (Dwight D McKay) Subject: Drivers for Burr-Brown a/d, d/a boards? Some researchers here are interested in a couple of a/d and d/a boards made by Burr-Brown. Namely the MPV952 and MPV954. Does anyone have drivers for these boards? How about some code using mmap() to access them? The people in this reseach group will be writing some code and I'd like to given them a head start if someone has already done some work with these boards. Thanks. --Dwight Mckay, ECN Text & Workstation Software Support [arpanet: mckay@ee.ecn.purdue.edu, usenet: ...ihnp4!pur-ee!mckay] [Compu-serve: 75776,1521, office: EE 348B, phone: (317) 494-3561] ------------------------------ Date: 4 Mar 87 05:19:48 GMT From: billp@unet.UUCP (Bill Putney) Subject: Wanted: Meeting Reminder Software (sun or c srcs)? Intro: When I worked at Tymshare we had a program called "remind". This was thing written in DEC 10 assy. It took command lines (I don't remember the format exactly); "remind design review meeting, every tuesday at 2:00 PM" and a little while before 2 on tuesday it would send a message reminding me to go to a meeting I would have otherwise completely forgotten. The parser was very good at making sense of what ever a human would use as a date - time description. Request: Does anyone know where I can; a) find something like remind that will grab the attention of a window user on a sun workstation, b) find the C sources to anything even remotely like remind. I know about "leave" and "calendar", but they don't quite do it. I you have something or know of something, please send me mail and I'll get back to you. No point in transmitting 35 copies of the samething via net. Thanks ------------------------------ Date: Thu, 5 Mar 87 12:08:18 -0200 From: Nancy Yavne <nancy%WISDOM.BITNET@wiscvm.wisc.edu> Subject: Sunview questions? (long) I have an application that runs as separate process and interacts with user independently of SunView. This application issues calls to routines which use SunView services , such as window_create, pw_write, pw_vector etc. I tryed to implement the program in following ways : 1) C function called init_sunwindows is called from application to initialize the window environment. This function open relevant windows and then spawns son process who's only responsibility is to call to process_main_loop control function of SunView. Afterwards init_sunwindows function returns control to application, which calls to various C functions to display specific items. Following errors are appearing: WIN ioctl number 20006703: Mount device busy ( In application window ). Window display lock broken because process 1170 blocked. ( In console window). When continuously drawing in the window, the following error msg appears: Window display lock broken after time limit exceeded by pid 536 ( In console window). You may see display garbage because of this action ( In console window). When this window is closed to icon or hided behind other window and then opened or exposed it does not appear on the screen. It appears again only after Redisplay All command is performed (from suntools menu ). All drawings which are inside this window are not shown even after Redisplay all command. 2) As alternative to usage of process_main_loop I tryed to use technique described in Section 16.6 of SunView programmer's Guide and implicitly call to notify_dispatch procedure of SunView, this resulted however in very poor appearance of the window: 1) No border was drawn ; 2) Window was not cleared when open; 3) No reaction (e.a. appearance of menu ) was committed to pressure of mouse buttons ; 4) No reaction was performed after Redisplay All command . Following is a sample of the actual code I used. init_sunwindows() { bold = pf_open("/usr/lib/fonts/fixedwidthfonts/gallant.r.19"); if(bold == NULL) { printf("Bold Font not founded, aborting !\n"); exit(-1); } frame = window_create(NULL, FRAME, WIN_ERROR_MSG, "Cannot create frame", FRAME_LABEL, " Simple Draw", FRAME_ICON, &simple_demo_icon, WIN_FONT, bold, WIN_HEIGHT, 700, WIN_WIDTH, 700, WIN_X, 500, WIN_Y, -500, 0); canvas = window_create(frame, CANVAS, CANVAS_RETAINED, TRUE, WIN_FONT, bold, 0); pw = canvas_pixwin(canvas); /* Make the frame visible on screen */ window_set(frame,WIN_SHOW,TRUE,0); window_set(canvas,WIN_SHOW,TRUE,0); /* (void) notify_dispatch; */ if((pid = fork())< 0 ) { perror("init_sunwindow: Can not fork !"); return(-1); } /* #define WINDOW_MAIN_LOOP 1 */ if ( pid == 0 ) { /* child */ #ifdef WINDOW_MAIN_LOOP window_main_loop(frame); #else for(;;) { sleep(1); window_set(frame,WIN_SHOW,TRUE,0); window_set(canvas,WIN_SHOW,TRUE,0); (void) notify_dispatch; } #endif } } Does anyone have a clue as to what happening? Did anyone implement such application and has suggestions and/or solutions for me? Thanks Alex Polyak BITNET: nancy@wisdom ARPA: nancy%wisdom.bitnet@wiscvm.wisc.edu UUCP: .. !decvax!talcott!WISDOM!nancy P.S. Please mail me personally, I promise to post summary of responces. Thanks. ------------------------------ Date: Thu, 5 Mar 87 11:27:21 EST From: rennick@ragno.uucp Subject: Video cable extension on Sun III 160? We want to move our sun terminal more than Sun's maximun specified distance of 50 feet from the processor. We understand that some type of video amplifier is required to achieve this feat. Can anyone point us in the right direction? Bob Rennick Systems Laboratory (613) 993-9262 ------------------------------ Date: Thu, 5 Mar 87 11:02:55 EST From: sundar@hermes.ai.mit.edu (Sundar Narasimhan) Subject: yp slave servers? I'd like to hear from anyone who has made yp slave servers work along with master servers. We have had a configuration with just one master server for a while now. Recently we added another slave server, and things never seem to work right. We've even tried completely reinitializing the world with one master server and one slave server. The set up was done by : running ypinit -m on the master and adding to it the name of the slave server. The ypservers file looks ok, on the master. Then we ran "ypinit -s <master>" on the slave. The maps get transferred ok, and since we also have ypxfr's set up to do the transfers periodically the slave server's databases will hopefully be upto date. The problem, however, is that when the master server goes down, everything freezes up with the usual "server not available for domain <domain> : still trying ..." messages. One would expect that since the slave server is up and running that clients that boot off the slave server ought to be ok. Is something wrong with what we did, or is it that our understanding of slave servers is somehow mistaken?? Thanks, -Sundar ------------------------------ Date: Thu, 5 Mar 87 14:57:49 PST From: salem@sri-unix.ARPA (Bruce B. Salem) Subject: fast floating point code for 68008 cpu? I am posting this message for Richard Fox (bioacces@sri-unix.ARPA) soon to be (bioacces@unix.sri.com), please send replies to that account. Mr fox would like fast FP software to run on a 68008 cpu that will run under real time applications. The speed of operation must exceed the speed of the IEEE floating standard. The code would be desired as a C or 68K assembely language library. You can mail source to the account above which can be reached by the same ARPANET or USENET path as my account. Bruce Salem for Richard Fox. ------------------------------ Date: Thu, 5 Mar 87 18:18:45 est From: berger%datacube.UUCP@CCA.CCA.COM (Bob Berger) Subject: Addressing Very Large Framestores on Sun? Sun tech support can't help me, maybe someone on the net can! I want to map a very large chunk of physical memory (32 Meg of video frame-store) into my user process's virtual address space. We have a Sun 3/75 connected to an external VME chassis with a bus repeater capable of repeating a full A32 / D32 bus to the external VME chassis. In this chassis we have a very large frame store that takes up 32 Meg of physical memory. We have been told that the only way to map the physical memory of the frame-store into a user program is to first do a valloc which I presume reserves pages in the MMU for a chunk of memory, and then an mmap which maps the physical memory into the reserved virtual memory chunk. This is how frame-store's are usually mapped in on the sun. The problem is that the valloc actually allocates the amount of memory you are requesting. If you don't have enough swap space free, the valloc fails. Thus not allowing you to get a chance to map the physical to virtual address. They say that this will be changed in version 4.0 of Sun OS.... There must be a more sane way to tell the operating system / MMU hardware to do an explicit mapping today! What good is having A32 VME bus addressing if you can't talk to large chunks of physical memory? I consider this a major failing if its true that a Sun can not do this. Bob Berger Datacube Inc. Systems / Software Group 4 Dearborn Rd. Peabody, Ma 01960 VOICE: 617-535-6644; FAX: (617) 535-5643; TWX: (710) 347-0125 UUCP: ihnp4!datacube!berger {seismo,cbosgd,cuae2,mit-eddie}!mirror!datacube!berger ------------------------------ Date: 7 Mar 87 15:18:56 GMT From: John Ioannidis <ioannidis@cs.columbia.edu> Subject: Sun-2 ethernet problem? I am posting this for a friend. You can answer to him directly, or to me. We''ll summarize and post the replies. We have a couple of diskful Sun2s and one diskless Sun2/50. During a thunderstorm almost all our Interlan NT10 Ethernet tranceivers failed!! (Only one survived) Instead of repairing them we decided to order new ones (the NT100s). When the new tranceivers arrived I installed them and all the machines worked perfectly EXCEPT for the diskless. I kept getting "Ethernet cable problem" (which I suppose is the user friendly version of "Ethernet jammed" found in the old PROMS. I tried a few tranceivers but to no avail. To make a long story short the diskless worked only when (in desperation) I brought the surviving NT10 and plugged it in. Well, it worked! The diskless booted from the net without any probs. After confirming that the diskless worked I tried to make it work with the NT100s (I fiddled a bit with the heartbeat and jabber-detect straps) but again no luck. Has anybody else encountered the same prob? I suspect that this is some weird incompatibility between the Sun Ethernet interface and the Vassilis Prevelakis (...!seismo!mcvax!ariadne!vp) Institute of Computer Science Research Center of Crete Crete, GREECE. ---------------------------------------- #include <appropriate_disclaimers> VOICE: +1 212 280 5510 ARPA: ioannidis@cs.columbia.EDU USnail: John Ioannidis ji@garfield.columbia.EDU 450 Computer Science Columbia University, USENET: ...{seismo|topaz}! New York, NY 10027 columbia!garfield!ji ... It's all Greek to me! ------------------------------ End of SUN-Spots Digest ***********************