Browse Source

Plan 9 from Bell Labs 2004-03-19

David du Colombier 20 years ago
parent
commit
90fab10146
6 changed files with 88 additions and 33 deletions
  1. 4 3
      dist/replica/plan9.db
  2. 4 0
      dist/replica/plan9.log
  3. 46 0
      sys/lib/kbmap/fi
  4. 12 9
      sys/src/9/pc/kbd.c
  5. 21 21
      sys/src/9/port/edf.c
  6. 1 0
      sys/src/9/port/edf.h

+ 4 - 3
dist/replica/plan9.db

@@ -3870,6 +3870,7 @@ sys/lib/kbmap/ascii - 664 sys sys 1079475826 18944
 sys/lib/kbmap/azerty - 644 sys sys 1079473812 735
 sys/lib/kbmap/bgmap - 664 sys sys 1079475826 561
 sys/lib/kbmap/es - 664 sys sys 1079535430 1360
+sys/lib/kbmap/fi - 664 sys sys 1079617317 369
 sys/lib/kbmap/uk - 664 sys sys 1079473812 55
 sys/lib/lex - 20000000775 sys sys 945136651 0
 sys/lib/lex/ncform - 664 sys sys 945136651 4060
@@ -5353,7 +5354,7 @@ sys/src/9/pc/i8259.c - 664 sys sys 1015014519 4423
 sys/src/9/pc/init9.c - 664 sys sys 1040002518 94
 sys/src/9/pc/initcode.s - 664 sys sys 1015014519 282
 sys/src/9/pc/io.h - 664 sys sys 1072972600 8023
-sys/src/9/pc/kbd.c - 664 sys sys 1079491476 11550
+sys/src/9/pc/kbd.c - 664 sys sys 1079617269 11655
 sys/src/9/pc/l.s - 664 sys sys 1074785126 22699
 sys/src/9/pc/main.c - 664 sys sys 1074785126 14644
 sys/src/9/pc/mem.h - 664 sys sys 1018553448 4573
@@ -5458,8 +5459,8 @@ sys/src/9/port/devssl.c - 664 sys sys 1045063590 26100
 sys/src/9/port/devtinyfs.c - 664 sys sys 1015278339 15347
 sys/src/9/port/devtls.c - 664 sys sys 1066737478 45222
 sys/src/9/port/devuart.c - 664 sys sys 1077055016 11683
-sys/src/9/port/edf.c - 664 sys sys 1077376394 12357
-sys/src/9/port/edf.h - 664 sys sys 1074883055 1145
+sys/src/9/port/edf.c - 664 sys sys 1079634533 12358
+sys/src/9/port/edf.h - 664 sys sys 1079634533 1153
 sys/src/9/port/error.h - 664 sys sys 1055700517 2630
 sys/src/9/port/fault.c - 664 sys sys 1067722722 6628
 sys/src/9/port/initcode.c - 664 sys sys 1055688491 574

+ 4 - 0
dist/replica/plan9.log

@@ -14701,3 +14701,7 @@
 1079576139 12 c dist/replica/plan9.proto - 664 sys sys 1079575451 2566
 1079577098 0 d sys/src/9/ppc/blast.c - 664 sys sys 1059490750 0
 1079578899 0 c sys/include/keyboard.h - 664 sys sys 1079577798 815
+1079618508 0 a sys/lib/kbmap/fi - 664 sys sys 1079617317 369
+1079618508 1 c sys/src/9/pc/kbd.c - 664 sys sys 1079617269 11655
+1079634710 0 c sys/src/9/port/edf.c - 664 sys sys 1079634533 12358
+1079634710 1 c sys/src/9/port/edf.h - 664 sys sys 1079634533 1153

+ 46 - 0
sys/lib/kbmap/fi

@@ -0,0 +1,46 @@
+0 12 '+
+0 13 '´
+0 26 'å
+0 27 '¨
+0 39 'ö
+0 40 'ä
+0 41 '§
+0 43 ''
+0 51 ',
+0 52 '.
+0 53 '-
+0 86 '<
+1 2 '!
+1 3 '"
+1 4 '#
+1 5 '$
+1 6 '%
+1 7 '&
+1 8 '/
+1 9 '(
+1 10 ')
+1 11 '=
+1 12 '?
+1 13 '`
+1 26 'Å
+1 27 '^
+1 39 'Ö
+1 40 'Ä
+1 41 '½
+1 43 '*
+1 51 ';
+1 52 ':
+1 53 '_
+1 86 '>
+3 3 '@
+3 4 '£
+3 5 '$
+3 8 '{
+3 9 '[
+3 10 ']
+3 11 '}
+3 12 '\
+3 18 '€
+3 27 '~
+3 46 '¢
+3 86 '|

+ 12 - 9
sys/src/9/pc/kbd.c

@@ -21,11 +21,11 @@ enum {
 
 	Cmd=		0x64,		/* command port (write only) */
 
-	Spec=		0x80,
+	Spec=		0xF800,		/* Unicode private space */
 
 	PF=		Spec|0x20,	/* num pad function key */
 	View=		Spec|0x00,	/* view (shift window up) */
-	KF=		0xF000,	/* function key (begin Unicode private space) */
+	KF=		0xF000,		/* function key (begin Unicode private space) */
 	Shift=		Spec|0x60,
 	Break=		Spec|0x61,
 	Ctrl=		Spec|0x62,
@@ -121,14 +121,14 @@ Rune kbtabaltgr[Nscan] =
 [0x00]	No,	No,	No,	No,	No,	No,	No,	No,
 [0x08]	No,	No,	No,	No,	No,	No,	No,	No,
 [0x10]	No,	No,	No,	No,	No,	No,	No,	No,
-[0x18]	No,	No,	No,	No,	No,	No,	No,	No,
+[0x18]	No,	No,	No,	No,	'\n',	Ctrl,	No,	No,
 [0x20]	No,	No,	No,	No,	No,	No,	No,	No,
-[0x28]	No,	No,	No,	No,	No,	No,	No,	No,
-[0x30]	No,	No,	No,	No,	No,	No,	No,	No,
-[0x38]	No,	No,	No,	No,	No,	No,	No,	No,
-[0x40]	No,	No,	No,	No,	No,	No,	No,	No,
-[0x48]	No,	No,	No,	No,	No,	No,	No,	No,
-[0x50]	No,	No,	No,	No,	No,	No,	No,	No,
+[0x28]	No,	No,	Shift,	No,	No,	No,	No,	No,
+[0x30]	No,	No,	No,	No,	No,	'/',	No,	Print,
+[0x38]	Altgr,	No,	No,	No,	No,	No,	No,	No,
+[0x40]	No,	No,	No,	No,	No,	No,	Break,	Home,
+[0x48]	Up,	Pgup,	No,	Left,	No,	Right,	No,	End,
+[0x50]	Down,	Pgdown,	Ins,	Del,	No,	No,	No,	No,
 [0x58]	No,	No,	No,	No,	No,	No,	No,	No,
 [0x60]	No,	No,	No,	No,	No,	No,	No,	No,
 [0x68]	No,	No,	No,	No,	No,	No,	No,	No,
@@ -381,6 +381,9 @@ i8042intr(Ureg*, void*)
 		case Ctrl:
 			ctl = 0;
 			break;
+		case Altgr:
+			altgr = 0;
+			break;
 		}
 		return;
 	}

+ 21 - 21
sys/src/9/port/edf.c

@@ -281,18 +281,18 @@ edfrun(Proc *p, int edfpri)
 			e->s = now;
 			return;
 		}
-		p->tns = now + e->S;
-		if (e->d < p->tns)
-			p->tns = e->d;
-		if(p->tt == nil || p->tf != deadlineintr){
+		e->tns = now + e->S;
+		if (e->d < e->tns)
+			e->tns = e->d;
+		if(e->tt == nil || e->tf != deadlineintr){
 			DPRINT("%t edfrun, deadline=%t\n", now, p->tns);
 		}else{
 			DPRINT("v");
 		}
-		p->tmode = Tabsolute;
-		p->tf = deadlineintr;
-		p->ta = p;
-		timeradd(p);
+		e->tmode = Tabsolute;
+		e->tf = deadlineintr;
+		e->ta = p;
+		timeradd(e);
 	}else{
 		DPRINT("<");
 	}
@@ -378,11 +378,11 @@ edfadmit(Proc *p)
 			DPRINT("%t edfadmit other %lud[%s], release at %t\n",
 				now, p->pid, statename[p->state], e->t);
 			if(p->tt == nil){
-				p->tf = releaseintr;
-				p->ta = p;
-				p->tns = e->t;
-				p->tmode = Tabsolute;
-				timeradd(p);
+				e->tf = releaseintr;
+				e->ta = p;
+				e->tns = e->t;
+				e->tmode = Tabsolute;
+				timeradd(e);
 			}
 		}
 	}
@@ -403,8 +403,8 @@ edfstop(Proc *p)
 		if(pt = proctrace)
 			pt(p, SExpel, now);
 		e->flags &= ~Admitted;
-		if (p->tt)
-			timerdel(p);
+		if (e->tt)
+			timerdel(e);
 		edfunlock();
 	}
 }
@@ -459,15 +459,15 @@ edfready(Proc *p)
 			/* Non sporadic processes stay true to their period, calculate next release time */
 			while(e->t < now)
 				e->t += e->T;
-		}
+		}	
 		if (now < e->t){
 			/* Next release is in the future, schedule it */
 			if (p->tt == nil || p->tf != releaseintr){
-				p->tns = e->t;
-				p->tmode = Tabsolute;
-				p->tf = releaseintr;
-				p->ta = p;
-				timeradd(p);
+				e->tns = e->t;
+				e->tmode = Tabsolute;
+				e->tf = releaseintr;
+				e->ta = p;
+				timeradd(e);
 				DPRINT("%t edfready %lud[%s], release=%t\n",
 					now, p->pid, statename[p->state], e->t);
 			}

+ 1 - 0
sys/src/9/port/edf.h

@@ -34,6 +34,7 @@ struct Edf {
 	Proc		*testnext;
 	/* other */
 	ushort		flags;
+	Timer;
 	/* Stats */
 	vlong		edfused;
 	vlong		extraused;