[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New wsdisplay for playstation2



Izumi Tsutsui <tsutsui@ceres.dti.ne.jp> writes:
> 適当に添付のとおりに直すと compile は通りますが、
> wsdisplay_emulops で allocattr が alloc_attr になってるとか
> CFATTACH_DECL() を使ってないとかいうところを見ると
> だいぶ古いソースで作業してるっぽいです。

私は手抜きで最低限コンパイルできる程度にgsfb.cを以下のように直して、後は
wsconsio.hやfiles.playstation2を同じように修整して試してみたのですが、起
動しても画面には何も表示されませんでした。ベースになっているソースは10月
26日頃の-currentです。

コンパイルできるようにしただけなので、きちんと動作するようにするために他
の修整が必要かどうかまでは全然調べていません。

--- gsfb.c.org	Sat Nov  1 10:28:55 2003
+++ gsfb.c	Sat Nov  1 12:25:50 2003
@@ -121,9 +121,8 @@
 static int gsfb_match(struct device *, struct cfdata *, void *);
 static void gsfb_attach(struct device *, struct device *, void *);
 
-const struct cfattach gsfb_ca = {
-        sizeof (struct device), gsfb_match, gsfb_attach, 0 , 0 
-};
+CFATTACH_DECL(gsfb, sizeof(struct device),
+    gsfb_match, gsfb_attach, NULL, NULL);
 
 /* console (exported) */
 void gsfbcnprobe(struct consdev *);
@@ -229,7 +228,7 @@
 {
 	long defattr;
 	gsfb_init();
-	(*gsfb_rinfo.ri_ops.alloc_attr)(&gsfb_rinfo, 0, 0, 0, &defattr);
+	(*gsfb_rinfo.ri_ops.allocattr)(&gsfb_rinfo, 0, 0, 0, &defattr);
 	wsdisplay_cnattach(&gsfb_stdscreen, &gsfb_rinfo, 0, 0, defattr);
 	gsfb_console = 1;
 	cn_tab->cn_pri = CN_INTERNAL;
@@ -261,8 +260,8 @@
 paddr_t
 gsfb_mmap(void *v, off_t offset, int prot)
 {
-	if (GSFB_BUFFER_SIZE >= (unsigned) offset)
-	    return NULL;
+	if ((unsigned) offset >= GSFB_BUFFER_SIZE)
+	    return (-1);
 	return mips_btop(offset + gsfb_screen_base);
 }
 
@@ -275,7 +274,7 @@
 	*cookiep = &gsfb_rinfo; 
 	*curxp = 0;
 	*curyp = 0;
-	(*gsfb_rinfo.ri_ops.alloc_attr)(&gsfb_rinfo, 0, 0, 0, attrp);
+	(*gsfb_rinfo.ri_ops.allocattr)(&gsfb_rinfo, 0, 0, 0, attrp);
 	gsfb_nscreens++;
 	return (0);
 }

> ただ当人は最初のメールでもあった cnputc() あたりを
> もう少し直すと言ってるのでしばらく待ってみます。

そうですね。もう少し待ったほうが良さそうです。

# 新しいバージョンができたら動作確認ができるように環境は維持しておきます。

--- Takao Shinohara