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

__NO_FIXED_MSGBUF



msgbuf のアドレスなんですが、利用可能なメモリーの最後のページに
しませんか? これだとちょっとカーネルを変えた程度ではかわらないので
reboot 前のメッセージが読めます。

# iMac と以前ので共通に使える方法がこれしかみつからなかった。

こんな感じ:
*** pmap.c~	Sun Jan 10 19:24:17 1999
--- pmap.c	Sun Jan 10 19:21:12 1999
***************
*** 473,488 ****
  	 * allow for msgbuf
  	 */
  	sz = round_page(MSGBUFSIZE);
! 	for (mp = avail; mp->size; mp++)
! 		if (mp->size >= sz)
! 			break;
! 	if (!mp->size)
  		panic("not enough memory?");
  
  	npgs -= btoc(sz);
! 	msgbuf_paddr = mp->start;
  	mp->size -= sz;
- 	mp->start += sz;
  	if (mp->size <= 0)
  		bcopy(mp + 1, mp, (cnt - (mp - avail)) * sizeof *mp);
  #endif
--- 473,488 ----
  	 * allow for msgbuf
  	 */
  	sz = round_page(MSGBUFSIZE);
! 	mp = NULL;
! 	for (mp1 = avail; mp1->size; mp1++)
! 		if (mp1->size >= sz)
! 			mp = mp1;
! 	if (mp == NULL)
  		panic("not enough memory?");
  
  	npgs -= btoc(sz);
! 	msgbuf_paddr = mp->start + mp->size - sz;
  	mp->size -= sz;
  	if (mp->size <= 0)
  		bcopy(mp + 1, mp, (cnt - (mp - avail)) * sizeof *mp);
  #endif

(やっぱり fixed なので NO_FIXED_MSGBUF だと変かな?)