211 lines
6.5 KiB
Groff
211 lines
6.5 KiB
Groff
.\"-
|
||
.\" Copyright (c) 2001 Dag-Erling Coïdan Smørgrav
|
||
.\" All rights reserved.
|
||
.\"
|
||
.\" Redistribution and use in source and binary forms, with or without
|
||
.\" modification, are permitted provided that the following conditions
|
||
.\" are met:
|
||
.\" 1. Redistributions of source code must retain the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer.
|
||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||
.\" notice, this list of conditions and the following disclaimer in the
|
||
.\" documentation and/or other materials provided with the distribution.
|
||
.\"
|
||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
.\" SUCH DAMAGE.
|
||
.\"
|
||
.\" %FreeBSD: src/share/man/man9/zone.9,v 1.9.2.4 2002/05/02 20:01:29 asmodai Exp %
|
||
.\"
|
||
.\" $FreeBSD$
|
||
.Dd January 27, 2001
|
||
.Dt ZONE 9
|
||
.Os
|
||
.Sh ̾¾Î
|
||
.Nm zbootinit ,
|
||
.Nm zinitna ,
|
||
.Nm zinit ,
|
||
.Nm zalloc ,
|
||
.Nm zfree ,
|
||
.Nm zalloci ,
|
||
.Nm zfreei ,
|
||
.Nd ¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿
|
||
.Sh ½ñ¼°
|
||
.In sys/param.h
|
||
.In sys/queue.h
|
||
.In vm/vm_zone.h
|
||
.Ft void
|
||
.Fn zbootinit "vm_zone_t z" "char *name" "int size" "void *item" "int nitems"
|
||
.Ft int
|
||
.Fn zinitna "vm_zone_t z" "struct vm_object *obj" "char *name" "int size" "int nentries" "int flags" "int zalloc"
|
||
.Ft vm_zone_t
|
||
.Fn zinit "char *name" "int size" "int nentries" "int flags" "int zalloc"
|
||
.Ft void *
|
||
.Fn zalloc "vm_zone_t z"
|
||
.Ft void
|
||
.Fn zfree "vm_zone_t z" "void *item"
|
||
.Ft void *
|
||
.Fn zalloci "vm_zone_t z"
|
||
.Ft void
|
||
.Fn zfreei "vm_zone_t z" "void *item"
|
||
.Sh ²òÀâ
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤ÏưŪ¤ËÂ礤µ¤¬·è¤á¤é¤ì¤ëÎà»÷¤·¤¿Â礤µ¤Î¹àÌܤν¸¹ç¤ò
|
||
´ÉÍý¤¹¤ë¤¿¤á¤Î¸úΨŪ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¤Þ¤¹¡£
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï¼Â¹Ô»þ¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥¾¡¼¥ó¤Ï¤â¤Á¤í¤ó¡¢
|
||
ͽ¤á³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤ë¥¾¡¼¥ó¤ËÂФ·¤Æ¤â»ÈÍѤ¹¤ë¤³¤È¤¬½ÐÍè¡¢¤Þ¤¿¤½¤Î¤¿¤á¡¢
|
||
¾¤Î¥á¥â¥ê´ÉÍý¥ë¡¼¥Á¥ó¤è¤ê¤â¥Ö¡¼¥È¥×¥í¥»¥¹¤Î¤è¤êÁᤤÃʳ¬¤ÇÍøÍѲÄǽ¤Ç¤¹¡£
|
||
.Pp
|
||
¥¾¡¼¥ó¤Ï¿Ä¥À¤Î¤¢¤ëƱ°ì¤ÎÂ礤µ¤Î¹àÌܤν¸¹ç¤Ç¤¹¡£
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï¤É¤Î¹àÌܤ¬»ÈÍÑÃæ¤«¤½¤¦¤Ç¤Ê¤¤¤Î¤«¤ò¸«¼º¤ï¤Ê¤¤¤è¤¦¤Ë¤·¡¢
|
||
¥¾¡¼¥ó¤«¤é
|
||
¹àÌܤò³ä¤êÅö¤Æ¤ë¤¿¤á¤Î´Ø¿ô¤ª¤è¤Ó²òÊü¤·¤ÆÌ᤹ (¸å¤Ç¤Î»ÈÍѤΤ¿¤á¤Ë¹àÌܤò
|
||
ÍøÍѲÄǽ¤Ë¤¹¤ë) ¤¿¤á¤Î´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡£
|
||
.Pp
|
||
¹½Â¤ÂΤò¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ç´ÉÍý¤·¡¢
|
||
³ä¤êÅö¤Æ¤Î´Ö¤ËËä¤á¹þ¤ßºÑ¤ß¤Î¥Õ¥£¡¼¥ë¥É¤ò»Ä¤¹¤³¤È¤Ë¤è¤ê
|
||
·¿¤¬¸ÇÄê¤È¤Ê¤ë¥¾¡¼¥ó¤ÎÆÃÀ¤ò»ÈÍѤ·¤¿¤¤¾ì¹ç¡¢
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤¬ÆâÉô¤Ç»ÈÍѤ¹¤ëÀèÆ¬ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤ò
|
||
¤³¤Î¹½Â¤ÂΤ¬Í½Ì󤷤Ƥª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
|
||
.Bd -literal
|
||
struct my_item {
|
||
struct my_item *z_rsvd1;
|
||
struct my_item *z_rsvd2;
|
||
/* ¹½Â¤ÂΤλĤê¤ÎÉôʬ */
|
||
};
|
||
.Ed
|
||
.Pp
|
||
¤½¤¦¤·¤Ê¤¤¾ì¹ç¡¢³Æ¡¹¤Î³äÅö¤Æ¤Î¸å¤Ç¤³¤ì¤é¤Î¥¨¥ó¥È¥ê¤¬²õ¤ì¤¿¤È¤ß¤Ê¤¹¤Ù¤¤Ç¤¹¡£
|
||
¹àÌܤκǽé¤Î³äÅö¤Æ¤Î¸å¤Ç¤Ï¡¢0 ¤Ë¥¯¥ê¥¢¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
|
||
¤·¤«¤·¤½¤ì¤Ë³¤¯³äÅö¤Æ¤Ç¤Ï¡¢
|
||
ºÇ¶á²òÊü¤µ¤ì¤¿¤â¤Î¤¬ÆâÍÆ¤È¤·¤Æ»Ä¤Ã¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¤¬¡¢
|
||
Á°½Ò¤Î¥Õ¥£¡¼¥ë¥É¤ÏÎã³°¤Ç¤¹¡£
|
||
.Pp
|
||
¥¾¡¼¥ó¤Ï¥Ö¡¼¥È¥×¥í¥»¥¹¤¬¤É¤ì¤À¤±¿ÊĽ¤·¤Æ¤¤¤ë¤«¤Ë°Í¸¤·¤Æ¡¢
|
||
2 ¤Ä¤Îήµ·¤Î¤¦¤Á¤Î°ìÊý¤ÇºîÀ®¤µ¤ì¤Þ¤¹¡£
|
||
.Pp
|
||
VM ¥·¥¹¥Æ¥à¤¬´°Á´¤Ë½é´ü²½¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢
|
||
.Fn zinit
|
||
¤ò»ÈÍѤ·¤ÆÆ°Åª¤Ë³äÅö¤Æ¤é¤ì¤¿¥¾¡¼¥ó¤¬ºîÀ®¤Ç¤¤Þ¤¹¡£
|
||
.Fa name
|
||
°ú¿ô¤Ï¥¾¡¼¥ó¤Î¤¿¤á¤Îû¤¤µ½ÒŪ¤Ê̾Á°¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¤Ù¤¤Ç¤¹¡£
|
||
¤³¤ì¤ÏÅý·×¤È¥Ç¥Ð¥Ã¥®¥ó¥°ÌÜŪ¤Î¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
|
||
.Fa size
|
||
¤ª¤è¤Ó
|
||
.Fa nentries
|
||
¤Ï¤½¤ì¤¾¤ì¡¢¥¾¡¼¥ó¤Ë¤è¤Ã¤ÆÊÝ»ý¤µ¤ì¤ë¹àÌܤÎÂ礤µ¤ª¤è¤Ó¤½¤Î¥¾¡¼¥ó¤Î
|
||
½é´ü¤ÎÂ礤µ (¹àÌÜ¿ô¤Ç) ¤Ç¤¹¡£
|
||
³ä¤ê¹þ¤ß¥³¥ó¥Æ¥¥¹¥È¤ÎÃæ¤Ç¥¾¡¼¥ó¤«¤é¹àÌܤ¬³äÅö¤Æ¤é¤ì¤ëµ¡²ñ¤¬¤¢¤ë
|
||
¾ì¹ç¤Ë¤Ï¡¢
|
||
.Fa flags
|
||
°ú¿ô¤Ï
|
||
.Dv ZONE_INTERRUPT
|
||
¤ËÀßÄꤵ¤ì¤ë¤Ù¤¤Ç¤¹¡£
|
||
¤³¤Î¾ì¹ç¡¢¥¾¡¼¥ó¤Ï·è¤·¤Æ
|
||
.Fa nentries
|
||
¹àÌܤè¤ê¤âÂ礤¯¤Ê¤é¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
|
||
¾¤ÎÁ´¤Æ¤Î¾ì¹ç¤Ë¤Ï
|
||
.Fa flags
|
||
¤Ï 0 ¤ËÀßÄꤵ¤ì¤ë¤Ù¤¤Ç¤¹¡£
|
||
ºÇ¸å¤Î°ú¿ô
|
||
.Fa zalloc
|
||
¤Ï¥¾¡¼¥ó¤¬°ìÇդˤʤëÅ٤ˤ½¤Î¥¾¡¼¥ó¤¬Â礤¯¤Ê¤ë¤Ù¤ VM ¥Ú¡¼¥¸¤Î¿ô¤ò¼¨¤·¤Þ¤¹¡£
|
||
.Pp
|
||
VM ¥·¥¹¥Æ¥à¤¬Ì¤¤À´°Á´¤Ë½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï¹àÌܤËʬ¤±Í¿¤¨¤ë¤¿¤á¤Î VM ¥Ú¡¼¥¸¤ò
|
||
ưŪ¤Ë³äÅö¤Æ¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¡¢¸Æ¤Ó½Ð¤·Â¦¤¬ÀÅŪ¤Ê¹àÌܤΥס¼¥ë¤ò
|
||
¶¡µë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
|
||
¤³¤Î¾ì¹ç¡¢2 ¤Ä¤ÎÃʳ¬¤Ç½é´ü²½¤¬´°Î»¤·¤Þ¤¹¡£ºÇ½é¤Ë¡¢¥¾¡¼¥ó¤ÎºÇ½é¤Î»ÈÍѤÎÁ°¤Ë
|
||
.Fn zbootinit
|
||
¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢¸å¤Ç VM ¥·¥¹¥Æ¥à¤¬µ¯Æ°¤·¤¿¤È¤¤Ë¡¢
|
||
.Fn zinitna
|
||
¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¤½¤Î¥¾¡¼¥ó¤Î½é´ü²½¤¬´°Î»¤µ¤ì¤Þ¤¹¡£
|
||
.Pp
|
||
.Fn zbootinit
|
||
¤Ø¤ÎºÇ½é¤Î°ú¿ô¤Ï½é´ü²½¤µ¤ì¤ë¤Ù¤ÀÅŪ¤Ê
|
||
.Vt "struct vm_zone"
|
||
¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£
|
||
2 ÈÖÌÜ¤È 3 ÈÖÌܤϥ¾¡¼¥ó¤Î̾Á°¤ÈÊÝ»ý¤µ¤ì¤ë¹àÌܤÎÂ礤µ¤Ç¤¹¡£
|
||
4 ÈÖÌܤΰú¿ô¤Ï¥¾¡¼¥ó¤¬´°Á´¤Ë½é´ü²½¤µ¤ì¤ë¤Þ¤Ç¤Î´Ö¤Ë¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤¬
|
||
¤½¤³¤«¤é°ú¤½Ð¤¹¤Ç¤¢¤í¤¦ÀÅŪ¤Ê¹àÌܤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡£
|
||
.Fa nitems
|
||
°ú¿ô¤ÏÇÛÎóÃæ¤Î¹àÌÜ¿ô¤Ç¤¹¡£
|
||
.Pp
|
||
.Fa zinitna
|
||
¤Ø¤Î°ú¿ô¤Ï
|
||
.Fa zinit
|
||
¤Ø¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¹¤¬¡¢½é´ü²½¤µ¤ì¤ë¤Ù¤¥¾¡¼¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¡¢¤ª¤è¤Ó
|
||
.Dv ZONE_INTERRUPT
|
||
¤Î¾ì¹ç¤Ë¤½¤³¤«¤é¥Ú¡¼¥¸¤ò³äÅö¤Æ¤ë¤¿¤á¤Î
|
||
.Vt "struct vm_object"
|
||
¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬²Ã¤ï¤Ã¤Æ¤¤¤Þ¤¹¡£
|
||
.Pp
|
||
¥¾¡¼¥ó¤«¤é¹àÌܤò³äÅö¤Æ¤ë¤¿¤á¤Ë¤Ï¡¢Ã±½ã¤Ë¤½¤Î¥¾¡¼¥ó¤Î¥Ý¥¤¥ó¥¿¤òȼ¤Ê¤Ã¤Æ
|
||
.Fn zalloc
|
||
¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£¤³¤ì¤Ï¹àÌܤؤΥݥ¤¥ó¥¿¤ò¡¢¤Þ¤¿¤Ï¡¢¥¾¡¼¥ó¤ÎÃæ¤ÎÁ´¤Æ¤Î
|
||
¹àÌܤ¬»ÈÍÑÃæ¤Ç³î¤Ä¥¢¥í¥±¡¼¥¿¤¬¥¾¡¼¥ó¤òÂ礤¯¤Ç¤¤Ê¤¤¤Þ¤ì¤Ê¾ì¹ç¤Ë¤Ï¡¢
|
||
.Dv NULL
|
||
¤ò¡¢ÊÖ¤·¤Þ¤¹¡£
|
||
.Fn zalloc
|
||
¤Ï³ä¤ê¹þ¤ß¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
|
||
³ä¤ê¹þ¤ß¥»¡¼¥Õ¤Ê³äÅö¤Æ¤Î¤¿¤á¤Ë¤Ï
|
||
.Fn zalloc
|
||
¤ÈƱ¤¸¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤ò»ý¤Ä
|
||
.Fn zalloci
|
||
¤ò»ÈÍѤ·¤Þ¤¹¡£
|
||
.Pp
|
||
¹àÌܤϤ½¤Î¥¾¡¼¥ó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ª¤è¤Ó¤½¤Î¹àÌܤؤΥݥ¤¥ó¥¿¤òȼ¤Ê¤Ã¤¿
|
||
.Fn zfree
|
||
¤ò¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¡¢³äÅö¤Æ¤é¤ì¤Æ¤¤¤¿¥¾¡¼¥ó¤Ë²òÊü¤·Ìᤵ¤ì¤Þ¤¹¡£
|
||
.Fn zalloci
|
||
¤¬»ÈÍѤµ¤ì¤Æ¹Ô¤Ê¤ï¤ì¤¿³äÅö¤Æ¤Î¾ì¹ç¤Ë¤ÏÂбþ¤¹¤ë
|
||
.Fn zfreei
|
||
´Ø¿ô¤ò»ÈÍѤ·¤Þ¤¹¡£
|
||
.Sh Ìá¤êÃÍ
|
||
.Fn zinitna
|
||
´Ø¿ô¤ÏÀ®¸ù»þ¤Ë¤Ï 1 ¤ò¤½¤·¤Æ¼ºÇÔ»þ¤Ë¤Ï 0 ¤òÊÖ¤·¤Þ¤¹¡£
|
||
Í£°ì¤Î¼ºÇԤξì¹ç¤Ï³ä¤ê¹þ¤ß¥»¡¼¥Õ¤Ê¥¾¡¼¥ó¤Î¤¿¤á¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò
|
||
Á°¤â¤Ã¤Æ³äÅö¤Æ¤é¤ì¤Ê¤¤¤³¤È¤Ç¤¹¡£
|
||
.Pp
|
||
.Fn zinit
|
||
´Ø¿ô¤Ï´°Á´¤Ë½é´ü²½¤µ¤ì¤¿
|
||
.Vt "struct vm_zone"
|
||
¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò¡¢¤Þ¤¿¤Ï
|
||
.Vt "struct vm_zone"
|
||
¤ò
|
||
.Fn malloc
|
||
¤Ç¤¤Ê¤«¤Ã¤¿¾ì¹ç¤«
|
||
.Dv ZONE_INTERRUPT
|
||
¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ
|
||
.Fn zinitna
|
||
¤¬¥¢¥É¥ì¥¹¶õ´Ö¤ÎÁ°³äÅö¤Æ¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ë
|
||
.Dv NULL
|
||
¤ò¡¢ÊÖ¤·¤Þ¤¹¡£
|
||
.Pp
|
||
.Fn zalloc
|
||
´Ø¿ô¤Ï¹àÌܤؤΥݥ¤¥ó¥¿¤ò¡¢¤Þ¤¿¤Ï¥¾¡¼¥ó¤Î̤»ÈÍѹàÌܤ¬ÉÔ¤·¤Æ¥¢¥í¥±¡¼¥¿¤¬
|
||
¥¾¡¼¥ó¤ò³ÈÄ¥¤Ç¤¤Ê¤¤¾ì¹ç¤Ë
|
||
.Dv NULL
|
||
¤ò¡¢ÊÖ¤·¤Þ¤¹¡£
|
||
.Sh ´ØÏ¢¹àÌÜ
|
||
.Xr malloc 9
|
||
.Sh Îò»Ë
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï
|
||
.Fx 3.0
|
||
¤Ç¤Ï¤¸¤á¤ÆÅо줷¤Þ¤·¤¿¡£
|
||
.Sh ºî¼Ô
|
||
.An -nosplit
|
||
¥¾¡¼¥ó¥¢¥í¥±¡¼¥¿¤Ï
|
||
.An John S. Dyson
|
||
¤¬½ñ¤¤Þ¤·¤¿¡£
|
||
.Pp
|
||
¤³¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï
|
||
.An Dag-Erling Co\(:idan Sm\(/orgrav Aq des@FreeBSD.org
|
||
¤¬½ñ¤¤Þ¤·¤¿¡£
|