Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!zaphod.mps.ohio-state.edu!think.com!mintaka!bloom-beacon!dont-send-mail-to-path-lines From: oar%cecux1.cec.uchile.cl@mitvma.mit.EDU (Oscar Agacino R.) Newsgroups: comp.windows.x Subject: (none) Message-ID: Date: 15 Apr 91 20:56:00 GMT Sender: daemon@athena.mit.edu (Mr Background) Organization: The Internet Lines: 349 HELP: Perdon, I do you talk English perfectly, but i me feeling (desesperado) and needing your assist urgently Me bugs is the following: VERSION: R4 CLIENT MACHINE and OPERATING SYSTEM: VaxStation 2000 running Ultrix 2.3 DISPLAY TYPE: Digital QDSS WINDOW MANAGER: twm AREA: server (xinit, Xqdss, xdm) SYNOPSIS: 1) Running Xdqss with sg0 (4 planes) the process /etc/elcsd and /etc/syslog generate the following error when exist much process o events in the system: Errlog Buffer Full: xx Missed Error(s) In particular, xfig, xgc and xman fail with much events or clicks. (The value de SG_DMA_BUFSIZ = 1024*3 in the file /sys/data/sg_data.c) 2) When running xinit or xdm the server (Xqdss, with sg0, 8 planes) crash with the following error: Fatal server bug! XIO: fatal IO error 32 (Broken pipe) on X server "" after 0 requests (0 known processed) with 0 events remaining. The connection was probably broken by a server shutdown or KillClient. This error also ocurring before for sg0 (4 planes), but were fixed changed the file /sys/BINARY.vax/sg.o for the what have was the X11-R3. Relinking the kernel with the new sg.o, Xdqss (sg0 4 planes) funcional correcttly, BUT NOT Xqdss (sg0 8 planes). (What ??) Is posible using Xqdss with driver qd0 in time the sg0 ?? What differs exist (or is better) sg0 or qd0 ?? DESCRIPTION: Tape-1 the X11-R4 were transmited via FTP from uunet.uu.net (directory ftp/X) to oar@cecux1.cec.uchile.cl at 20/March/1991. The Xqdss were compiled gcc Version 3.27. The installation were done in MicroVax II Ultrix 2.3 using the directories /usr/{bin,lib,include}/X11 and mounted (via NFS) on the VaxStation 2000 Ultrix 2.3 (device Xqdss, 4 and 8 planes, driver sg0). Today, the installation is funcionalling in X10, and were installed (beforing 3 months) X11-R3, but was much less speed (less performance). Thank you, your assist will serving for the installation the X11-R4 for applications systems the researchs in Sciencie Mathematics. Sincerely, Mr. Oscar Agacino R. Systems Engeeniering Department of Mathematics and Sciencie Computacion University of Chile. ADDRESS INTERNET: oar@cecux1.cec.uchile.cl BITNET: tex1@uchcecvm.cec.uchile.cl /************************************************************************ *************************** ANEXO. FILE /sys/data/sg_data.c /* * @(#)sg_data.c 3.1 (ULTRIX) 3/5/87 */ /* * sg_data.c * * Modification history: * * * 8-Sep-86 -- rafiey (Ali Rafieymehr) * Created this data file for VAXstar color. * Derived from qd_data.c. * */ #include "sg.h" #include "../machine/pte.h" /* page table values */ #include "../machine/mtpr.h" /* VAX register access stuff */ #include "../h/param.h" /* general system params & macros */ #include "../h/conf.h" /* "linesw" tty driver dispatch */ #include "../h/dir.h" /* for directory handling */ #include "../h/user.h" /* user structure (what else?) */ #include "../vaxuba/sgioctl.h" /* ioctl call values */ #include "../h/tty.h" #include "../h/map.h" /* resource allocation map struct */ #include "../h/buf.h" /* buf structs */ #include "../h/vm.h" /* includes 'vm' header files */ #include "../h/bk.h" /* BKINPUT macro for line stuff */ #include "../h/clist.h" /* char list handling structs */ #include "../h/file.h" /* file I/O definitions */ #include "../h/uio.h" /* write/read call structs */ #include "../h/kernel.h" /* clock handling structs */ #include "../h/cpuconf.h" #include "../h/proc.h" #include "../h/ipc.h" #include "../h/shm.h" #include "../h/devio.h" #include "../vax/cpu.h" /* per cpu (pcpu) struct */ #include "../vaxuba/pdma.h" #include "../vaxuba/ubareg.h" /* uba & 'qba' register structs */ #include "../vaxuba/ubavar.h" /* uba structs & uba map externs */ #include "../vaxuba/sguser.h" /* definitions shared with my client */ #include "../vaxuba/sgreg.h" /* VAXstar(color) device register structures */ /* * VAXstar(color) driver status flags for tracking operational state */ struct sgflags { u_int inuse; /* which minor dev's are in use now */ u_int config; /* I/O page register content */ u_int mapped; /* user mapping status word */ u_int kernel_loop; /* if kernel console is redirected */ u_int user_fifo; /* FIFO from user space in progress */ u_short pntr_id; /* type code of pointing device */ u_short duart_imask; /* shadowing for duart intrpt mask reg */ u_short adder_ie; /* shadowing for adder intrpt enbl reg */ u_short curs_acc; /* cursor acceleration factor */ u_short curs_thr; /* cursor acceleration threshold level */ u_short tab_res; /* tablet resolution factor */ u_short selmask; /* mask for active sg select entries */ }; /* bit definitions for "inuse" entry */ #define CONS_DEV 0x01 #define ALTCONS_DEV 0x02 #define GRAPHIC_DEV 0x04 /* bit definitions for 'mapped' member of flag structure */ #define MAPDEV 0x01 /* hardware is mapped */ #define MAPDMA 0x02 /* DMA buffer mapped */ #define MAPEQ 0x04 /* event queue buffer mapped */ #define MAPSCR 0x08 /* scroll param area mapped */ #define MAPCOLOR 0x10 /* color map writing buffer mapped */ #define MAPFIFO 0x20 /* FIFO buffer mapped */ /* bit definitions for 'selmask' member of sgflag structure */ #define SEL_READ 0x01 /* read select is active */ #define SEL_WRITE 0x02 /* write select is active */ /* * constants used in shared memory operations */ #define EVENT_BUFSIZE 1024 /* # of bytes per device's event buffer */ #define MAXEVENTS ( (EVENT_BUFSIZE - sizeof(struct sginput)) \ / sizeof(struct _vs_event) ) #define SG_DMA_BUFSIZ (1024 * 3) #define FIFO_BUFSIZ (1024 * 3) #define COLOR_BUFSIZ ((sizeof(struct color_buf) + 512) & ~0x01FF) /*******************************************************************/ #ifdef BINARY extern struct uba_device *sginfo[]; /* uba structure */ extern struct tty sg_tty[]; /* extern struct sg_softc sg_softc[];*/ extern struct sg_fifo_space { char sg_pad[128*1024]; }; /* * static storage used by multiple functions in this code */ extern int Qbus_unmap[]; /* Qbus mapper release key */ extern struct sgflags sgflags; /* VAXstar(color) device status flags */ extern struct sgmap sgmap; /* VAXstar(color) register map structure */ extern caddr_t sgbase; /* base address of VAXstar(color) */ extern struct buf sgbuf[]; /* buf structs used by strategy */ extern char one_only[]; /* lock for single process access */ /* * shared memory allocation */ extern char event_shared[]; /* reserve event buf space */ extern struct sginput *eq_header; /* event buf header ptrs */ extern char FIFO_shared[]; /* reserve FIFO buf space */ extern struct FIFOreq_header *FIFOheader; /* FIFO buf header ptrs */ extern char DMA_shared[]; /* reserve DMA buf space */ extern struct DMAreq_header *DMAheader; /* DMA buf header ptrs */ extern char scroll_shared[]; /* reserve space for scroll structs */ extern struct scroll *scroll; /* pointers to scroll structures */ extern char color_shared[]; /* reserve space: color bufs */ extern struct color_buf *color_buf; /* pointers to color bufs */ /* * input event "select" use */ extern struct proc *rsel; /* process waiting for select */ extern int FIFObuf_size; extern int DMAbuf_size; /* * console cursor structure */ struct _vs_cursor cursor; /*********************************************************************/ #else /* * reference to an array of "uba_device" structures built by the auto * configuration program. The uba_device structure decribes the device * sufficiently for the driver to talk to it. The auto configuration code * fills in the uba_device structures (located in ioconf.c) from user * maintained info. */ struct uba_device *sginfo[NSG]; /* array of pntrs to each VAXstar's (color) */ /* uba structures */ struct tty sg_tty[NSG*4]; /* teletype structures for each.. */ /* ..possible minor device */ struct sg_fifo_space { char sg_pad[32867]; }; /* struct sg_softc sg_softc[NSG];*/ /* * static storage used by multiple functions in this code */ int Qbus_unmap[NSG]; /* Qbus mapper release code */ struct sgflags sgflags; /* VAXstar(color) device status flags */ struct sgmap sgmap; /* VAXstar(color) register map structure */ caddr_t sgbase; /* base address of VAXstar(color) */ struct buf sgbuf[NSG]; /* buf structs used by strategy */ char one_only[NSG]; /* lock for single process access */ /* * the array "event_shared[]" is made up of a number of event queue buffers * equal to the number of VAXstar color units configured into the running * kernel (NSG). * Each event queue buffer begins with an event queue header (struct sginput) * followed by a group of event queue entries (struct _vs_event). The array * "*eq_header[]" is an array of pointers to the start of each event queue * buffer in "event_shared[]". */ #define EQSIZE ((EVENT_BUFSIZE * NSG) + 512) char event_shared[EQSIZE]; /* reserve space for event bufs */ struct sginput *eq_header; /* event queue header pntrs */ /* * This allocation method reserves enough memory pages for NSG shared DMA I/O * buffers. Each buffer must consume an integral number of memory pages to * guarantee that a following buffer will begin on a page boundary. Also, * enough space is allocated so that the FIRST I/O buffer can start at the * 1st page boundary after "&DMA_shared". Page boundaries are used so that * memory protections can be turned on/off for individual buffers. */ #define IOBUFSIZE ((FIFO_BUFSIZ * NSG) + 512) char FIFO_shared[IOBUFSIZE]; /* reserve I/O buffer space */ struct FIFOreq_header *FIFOheader; /* FIFO buffer header pntrs */ char DMA_shared[IOBUFSIZE]; /* reserve I/O buffer space */ struct DMAreq_header *DMAheader; /* DMA buffer header pntrs */ /* * The driver assists a client in scroll operations by loading dragon * registers from an interrupt service routine. The loading is done using * parameters found in memory shrade between the driver and it's client. * The scroll parameter structures are ALL loacted in the same memory page * for reasons of memory economy. */ char scroll_shared[2 * 512]; /* reserve space for scroll structs */ struct scroll *scroll; /* pointers to scroll structures */ /* * the driver is programmable to provide the user with color map write * services at VSYNC interrupt time. At interrupt time the driver loads * the color map with any user-requested load data found in shared memory */ #define COLOR_SHARED ((COLOR_BUFSIZ * NSG) + 512) char color_shared[COLOR_SHARED]; /* reserve space: color bufs */ struct color_buf *color_buf; /* pointers to color bufs */ /* * input event "select" use */ struct proc *rsel; /* process waiting for select */ /* * console cursor structure */ struct _vs_cursor cursor; /************************************************************************/ int nNSG = NSG; int FIFObuf_size = FIFO_BUFSIZ; int SG_DMAbuf_size = SG_DMA_BUFSIZ; #endif