Plan 9 from Bell Labs’s /usr/web/sources/extra/changes/2005/1110

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


Move realmode into link section, add vesa driver.
 [rsc] --rw-rw-r-- M 15674 presotto sys 1504 Nov 10 10:21 sys/src/9/pc/pcf
	/n/sourcesdump/2005/1110/plan9/sys/src/9/pc/pcf:34,39 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/pc/pcf:34,40
	  	usb
	  
	  link
	+ 	realmode
	  	devpccard
	  	devi82365
	  	apm		apmjump
	/n/sourcesdump/2005/1110/plan9/sys/src/9/pc/pcf:62,68 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/pc/pcf:63,68
	  	usbuhci
	  
	  misc
	- 	realmode
	  	archmp		mp apic
	  
	  	sdata		pci sdscsi
 [rsc] --rw-rw-r-- M 15674 glenda sys 1427 Nov 10 10:21 sys/src/9/pc/pccd
	/n/sourcesdump/2005/1110/plan9/sys/src/9/pc/pccd:34,39 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/pc/pccd:34,40
	  	usb
	  
	  link
	+ 	realmode
	  	devpccard
	  	devi82365
	  	apm		apmjump
	/n/sourcesdump/2005/1110/plan9/sys/src/9/pc/pccd:61,67 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/pc/pccd:62,67
	  	usbuhci
	  
	  misc
	- 	realmode
	  	archmp		mp apic
	  
	  	sdata		pci sdscsi
	/n/sourcesdump/2005/1110/plan9/sys/src/9/pc/pccd:91,96 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/pc/pccd:91,97
	  	vgat2r4		+cur
	  	vgatvp3020	=cur
	  	vgatvp3026	=cur
	+ 	vgavesa
	  	vgavmware	+cur
	  
	  ip
 [rsc] --rw-rw-r-- M 15674 presotto sys 1486 Nov 10 10:21 sys/src/9/pc/pccpuf
	/n/sourcesdump/2005/1110/plan9/sys/src/9/pc/pccpuf:32,37 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/pc/pccpuf:32,38
	  	usb
	  
	  link
	+ 	realmode
	  	devpccard
	  	devi82365
	  	ether2000	ether8390
	/n/sourcesdump/2005/1110/plan9/sys/src/9/pc/pccpuf:58,64 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/pc/pccpuf:59,64
	  	usbuhci
	  
	  misc
	- 	realmode
	  	archmp		mp apic
	  
	  	uarti8250
 [rsc] --rw-rw-r-- M 15674 rsc sys 1473 Nov 10 10:21 sys/src/9/pc/pcflop
	/n/sourcesdump/2005/1110/plan9/sys/src/9/pc/pcflop:34,39 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/pc/pcflop:34,40
	  #	usb
	  
	  link
	+ 	realmode
	  	devpccard
	  	devi82365
	  #	apm		apmjump
	/n/sourcesdump/2005/1110/plan9/sys/src/9/pc/pcflop:62,68 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/pc/pcflop:63,68
	  #	usbuhci
	  
	  misc
	- 	realmode
	  #	archmp		mp apic
	  
	  	sdata		pci sdscsi
 [rsc] --rw-rw-r-- M 15674 glenda sys 11128 Nov 10 10:21 sys/src/9/port/page.c
	/n/sourcesdump/2005/1110/plan9/sys/src/9/port/page.c:240,246 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/9/port/page.c:240,246
	  }
	  
	  Page*
	- auxpage()
	+ auxpage(void)
	  {
	  	Page *p;
	  

Fix initial rectangle location.
 [rsc] --rw-rw-r-- M 15674 glenda sys 22791 Nov 10 10:21 sys/src/cmd/rio/rio.c
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/rio/rio.c:962,973 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/rio/rio.c:962,974
	  	p = mouse->xy;
	  	
	  	which = whichcorner(w, p);
	- 	startp = cornerpt(w->screenr, p, which);
	- 	wmovemouse(w, startp);
	+ 	p = cornerpt(w->screenr, p, which);
	+ 	wmovemouse(w, p);
	  	readmouse(mousectl);
	  	r = whichrect(w->screenr, p, which);
	  	drawborder(r, 1);
	  	or = r;
	+ 	startp = p;
	  	but = mouse->buttons;
	  	while(mouse->buttons == but){
	  		p = onscreen(mouse->xy);

Add keys.
 [rsc] --rw-rw-r-- M 15674 glenda sys 865 Nov 10 10:48 sys/include/keyboard.h
	/n/sourcesdump/2005/1110/plan9/sys/include/keyboard.h:16,23 - 
	/n/sourcesdump/2005/1111/plan9/sys/include/keyboard.h:16,23
	  
	  
	  extern	Keyboardctl*	initkeyboard(char*);
	- extern	int			ctlkeyboard(Keyboardctl*, char*);
	- extern	void			closekeyboard(Keyboardctl*);
	+ extern	int		ctlkeyboard(Keyboardctl*, char*);
	+ extern	void		closekeyboard(Keyboardctl*);
	  
	  enum {
	  	KF=	0xF000,	/* Rune: beginning of private Unicode space */
	/n/sourcesdump/2005/1110/plan9/sys/include/keyboard.h:38,41 - 
	/n/sourcesdump/2005/1111/plan9/sys/include/keyboard.h:38,46
	  	Kalt=		KF|0x15,
	  	Kshift=	KF|0x16,
	  	Kctl=		KF|0x17,
	+ 
	+ 	Kbs=	0x08,
	+ 	Kdel=	0x7f,
	+ 	Kesc=	0x1b,
	+ 	Keof=	0x04,
	  };

Set malloc tags.
 [rsc] --rw-rw-r-- M 15674 glenda sys 4160 Nov 10 10:48 sys/src/libdraw/alloc.c
	/n/sourcesdump/2005/1110/plan9/sys/src/libdraw/alloc.c:5,11 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/libdraw/alloc.c:5,16
	  Image*
	  allocimage(Display *d, Rectangle r, ulong chan, int repl, ulong val)
	  {
	- 	return _allocimage(nil, d, r, chan, repl, val, 0, 0);
	+ 	Image*	i;
	+ 
	+ 	i =  _allocimage(nil, d, r, chan, repl, val, 0, 0);
	+ 	if (i)
	+ 		setmalloctag(i, getcallerpc(&d));
	+ 	return i;
	  }
	  
	  Image*
 [rsc] --rw-rw-r-- M 15674 glenda sys 2415 Nov 10 10:48 sys/src/libdraw/creadimage.c
	/n/sourcesdump/2005/1110/plan9/sys/src/libdraw/creadimage.c:58,63 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/libdraw/creadimage.c:58,64
	  		if(dolock)
	  			lockdisplay(d);
	  		i = allocimage(d, r, chan, 0, 0);
	+ 		setmalloctag(i, getcallerpc(&d));
	  		if(dolock)
	  			unlockdisplay(d);
	  		if(i == nil)
 [rsc] --rw-rw-r-- M 15674 glenda sys 807 Nov 10 10:48 sys/src/libdraw/getsubfont.c
	/n/sourcesdump/2005/1110/plan9/sys/src/libdraw/getsubfont.c:32,36 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/libdraw/getsubfont.c:32,37
	  	if(f == 0)
	  		fprint(2, "getsubfont: can't read %s: %r\n", name);
	  	close(fd);
	+ 	setmalloctag(f, getcallerpc(&d));
	  	return f;
	  }

64-bit fixes.
 [rsc] --rw-rw-r-- M 15674 glenda sys 5615 Nov 10 16:50 sys/src/cmd/snap/take.c
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/take.c:96,102 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/take.c:96,102
	  }
	  
	  static Seg*
	- readseg(int fd, long off, ulong len, char *name)
	+ readseg(int fd, vlong off, ulong len, char *name)
	  {
	  	char buf[Pagesize];
	  	Page **pg;
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/take.c:187,193 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/take.c:187,193
	  	switch(mach->szreg) {
	  	case 2:	return machdata->swab(*(ushort*)q);
	  	case 4:	return machdata->swal(*(ulong*)q);
	- 	case 8:	/* too much code assumes stackptr fits in ulong */
	+ 	case 8:	return machdata->swav(*(uvlong*)q);
	  	default:
	  		fprint(2, "register size is %d bytes?\n", mach->szreg);
	  		return 0;
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/take.c:200,209 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/take.c:200,209
	  	Data *d;
	  	Proc *proc;
	  	Seg **s;
	- 	char *segdat, *q, *f[128+1], buf[128];
	+ 	char *name, *segdat, *q, *f[128+1], buf[128];
	  	int fd, i, stacki, nf, np;
	- 	ulong off, len, stackoff, stacklen;
	- 	ulong sp;
	+ 	uvlong off, len, stackoff, stacklen;
	+ 	uvlong sp;
	  
	  	proc = emalloc(sizeof(*proc));
	  	proc->pid = pid;
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/take.c:263,278 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/take.c:263,277
	  	for(i=0; i<nf; i++) {
	  		if(q = strchr(f[i], ' ')) 
	  			*q = 0;
	- 		q = f[i];
	- 		off = strtoul(q+10, 0, 16);
	- 		len = strtoul(q+10+8+1, 0, 16) - off;
	- 
	- 		if(strcmp(q, "Stack") == 0) {
	+ 		name = f[i];
	+ 		off = strtoull(name+10, &q, 16);
	+ 		len = strtoull(q, &q, 16) - off;
	+ 		if(strcmp(name, "Stack") == 0) {
	  			stackoff = off;
	  			stacklen = len;
	  			stacki = i;
	  		} else
	- 			s[i] = readseg(fd, off, len, q);
	+ 			s[i] = readseg(fd, off, len, name);
	  	}
	  	proc->nseg = nf;
	  	proc->seg = s;
 [rsc] --rw-rw-r-- M 15674 glenda sys 1453 Nov 10 16:50 sys/src/cmd/snap/write.c
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/write.c:22,34 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/write.c:22,38
	  	Page **pp, *p;
	  	int type;
	  
	- 	type = proc->text ==  s ? 't' : 'm';
	+ 	if(s == nil){
	+ 		Bprint(b, "%-11ud %-11ud ", 0, 0);
	+ 		return;
	+ 	}
	  
	+ 	type = proc->text ==  s ? 't' : 'm';
	  	npg = (s->len+Pagesize-1)/Pagesize;
	  	if(npg != s->npg)
	  		abort();
	  
	- 	Bprint(b, "%-11lud %-11lud ", s->offset, s->len);
	+ 	Bprint(b, "%-11llud %-11llud ", s->offset, s->len);
	  	if(s->len == 0)
	  		return;
	  
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/write.c:38,44 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/write.c:42,48
	  				Bprint(b, "z");
	  				continue;
	  			}
	- 			Bprint(b, "%c%-11ld %-11lud ", p->type, p->pid, p->offset);
	+ 			Bprint(b, "%c%-11ld %-11llud ", p->type, p->pid, p->offset);
	  		} else {
	  			Bprint(b, "r");
	  			Bwrite(b, p->data, p->len);
 [rsc] --rw-rw-r-- M 15674 glenda sys 4287 Nov 10 16:50 sys/src/cmd/snap/read.c
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/read.c:23,29 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/read.c:23,29
	  }
	  
	  Page*
	- findpage(Proc *plist, long pid, int type, ulong off)
	+ findpage(Proc *plist, long pid, int type, uvlong off)
	  {
	  	Seg *s;
	  	int i;
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/read.c:58,63 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/read.c:58,116
	  	return s->pg[off/Pagesize];
	  }
	  
	+ static int
	+ Breadnumber(Biobuf *b, char *buf)
	+ {
	+ 	int i;
	+ 	int c;
	+ 	int havedigits;
	+ 	
	+ 	havedigits = 0;
	+ 	for(i=0; i<22; i++){
	+ 		if((c = Bgetc(b)) == Beof)
	+ 			return -1;
	+ 		if('0' <= c && c <= '9'){
	+ 			*buf++ = c;
	+ 			havedigits = 1;
	+ 		}else if(c == ' '){
	+ 			if(havedigits){
	+ 				while((c = Bgetc(b)) == ' ')
	+ 					;
	+ 				if(c != Beof)
	+ 					Bungetc(b);
	+ 				break;
	+ 			}
	+ 		}else{
	+ 			werrstr("bad character %.2ux", c);
	+ 			return -1;
	+ 		}
	+ 	}
	+ 	*buf = 0;
	+ 	return 0;
	+ }
	+ 
	+ static int
	+ Breadulong(Biobuf *b, ulong *x)
	+ {
	+ 	char buf[32];
	+ 	
	+ 	if(Breadnumber(b, buf) < 0)
	+ 		return -1;
	+ 	*x = strtoul(buf, 0, 0);
	+ 	return 0;
	+ }
	+ 
	+ static int
	+ Breaduvlong(Biobuf *b, uvlong *x)
	+ {
	+ 	char buf[32];
	+ 	
	+ 	if(Breadnumber(b, buf) < 0)
	+ 		return -1;
	+ 	*x = strtoull(buf, 0, 0);
	+ 	return 0;
	+ }
	+ 
	  static Data*
	  readdata(Biobuf *b)
	  {
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/read.c:84,99 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/read.c:137,152
	  	int i, npg;
	  	int t;
	  	int len;
	- 	ulong pid, off;
	+ 	ulong pid;
	+ 	uvlong off;
	  	char buf[Pagesize];
	  	static char zero[Pagesize];
	  
	  	s = emalloc(sizeof *s);
	- 	if(Bread(b, buf, 2*12) != 2*12)
	+ 	if(Breaduvlong(b, &s->offset) < 0
	+ 	|| Breaduvlong(b, &s->len) < 0)
	  		panic("error reading segment");
	  
	- 	s->offset = atoi(buf);
	- 	s->len = atoi(buf+12);
	  	npg = (s->len + Pagesize-1)/Pagesize;
	  	s->npg = npg;
	  
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/read.c:113,140 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/read.c:166,193
	  		case 'z':
	  			pp[i] = datapage(zero, len);
	  			if(debug)
	- 				fprint(2, "0x%.8lux all zeros\n", s->offset+i*Pagesize);
	+ 				fprint(2, "0x%.8llux all zeros\n", s->offset+i*Pagesize);
	  			break;
	  		case 'm':
	  		case 't':
	- 			if(Bread(b, buf, 2*12) != 2*12)
	- 				panic("error reading segment");
	- 			pid = atol(buf);
	- 			off = atol(buf+12);
	+ 			if(Breadulong(b, &pid) < 0 
	+ 			|| Breaduvlong(b, &off) < 0)
	+ 				panic("error reading segment x");
	  			pp[i] = findpage(plist, pid, t, off);
	  			if(pp[i] == nil)
	  				panic("bad page reference in snapshot");
	  			if(debug)
	- 				fprint(2, "0x%.8lux same as %s pid %lud 0x%.8lux\n", s->offset+i*Pagesize, t=='m'?"mem":"text", pid, off);
	+ 				fprint(2, "0x%.8llux same as %s pid %lud 0x%.8llux\n", s->offset+i*Pagesize, t=='m'?"mem":"text", pid, off);
	  			break;
	  		case 'r':
	  			if(Bread(b, buf, len) != len)
	- 				panic("error reading segment");
	+ 				panic("error reading segment xx");
	  			pp[i] = datapage(buf, len);
	  			if(debug)
	- 				fprint(2, "0x%.8lux is raw data\n", s->offset+i*Pagesize);
	+ 				fprint(2, "0x%.8llux is raw data\n", s->offset+i*Pagesize);
	  			break;
	  		default:
	+ 			fprint(2, "bad type char %#.2ux\n", t);
	  			panic("error reading segment");
	  		}
	  	}
 [rsc] --rw-rw-r-- M 15674 glenda sys 985 Nov 10 16:50 sys/src/cmd/snap/snap.h
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/snap.h:25,32 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/snap.h:25,32
	  
	  struct Seg {
	  	char*	name;
	- 	ulong	offset;
	- 	ulong	 len;
	+ 	uvlong	offset;
	+ 	uvlong	 len;
	  	Page**	pg;
	  	int	npg;
	  };
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/snap.h:40,46 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/snap.h:40,46
	  	int	written;
	  	int	type;
	  	ulong	pid;
	- 	ulong	offset;
	+ 	uvlong	offset;
	  };
	  
	  struct Proc {
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/snap/snap.h:61,66 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/snap/snap.h:61,66
	  void	writesnap(Biobuf*, Proc*);
	  Page*	datapage(char *p, long len);
	  Proc*	readsnap(Biobuf *b);
	- Page*	findpage(Proc *plist, long pid, int type, ulong off);
	+ Page*	findpage(Proc *plist, long pid, int type, uvlong off);
	  
	  int	debug;
 [rsc] --rw-rw-r-- M 15674 glenda sys 5615 Nov 10 16:50 sys/src/cmd/snap/take.c
 [rsc] --rw-rw-r-- M 15674 glenda sys 1453 Nov 10 16:50 sys/src/cmd/snap/write.c

64-bit fix fixes.
 [rsc] --rw-rw-r-- M 15674 glenda sys 297 Nov 10 16:16 sys/src/cmd/9nfs/listalloc.c
	/n/sourcesdump/2005/1110/plan9/sys/src/cmd/9nfs/listalloc.c:8,19 - 
	/n/sourcesdump/2005/1111/plan9/sys/src/cmd/9nfs/listalloc.c:8,19
	  {
	  	char *p, *base;
	  
	- 	size = (size+sizeof(ulong)-1)/sizeof(ulong);
	+ 	size = (size+sizeof(ulong)-1)/sizeof(ulong)*sizeof(ulong);
	  	p = base = malloc(n*size);
	  	while(--n > 0){
	  		*(char**)p = p+size;
	  		p += size;
	  	}
	- 	*p = 0;
	+ 	*(char**)p = 0;
	  	return base;
	  }


Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].