Rechercher une page de manuel
arch_prctl
Langue: ja
Version: 2003-02-02 (openSuse - 09/10/07)
Section: 2 (Appels système)
̾Á°
arch_prctl - ¥¢¡¼¥¥Æ¥¯¥Á¥ã¸ÇͤΥ¹¥ì¥Ã¥É¾õÂÖ¤òÀßÄꤹ¤ë½ñ¼°
#include <asm/prctl.h> #include <sys/prctl.h>int arch_prctl(int code, unsigned long addr)
ÀâÌÀ
arch_prctl() ´Ø¿ô¤Ï¥¢¡¼¥¥Æ¥¯¥Á¥ã¸ÇÍ¤Î¥×¥í¥»¥¹¾õÂÖ¤Þ¤¿¤Ï¥¹¥ì¥Ã¥É¾õÂÖ¤òÀßÄꤹ¤ë¡£ code ¤ÏÉûµ¡Ç½¤òÁªÂò¤·¡¢°ú¤¿ô addr ¤òÉûµ¡Ç½¤ËÅϤ¹¡£x86-64 ¤ÎÉûµ¡Ç½¤Ï°Ê²¼¤ÎÄ̤ê:
- ARCH_SET_FS
- FS ¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤ò addr ¤ËÀßÄꤹ¤ë¡£
- ARCH_GET_FS
- ¸½ºß¤Î¥¹¥ì¥Ã¥É¤Î FS ¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹Ãͤò¡¢ addr ¥Ñ¥é¥á¡¼¥¿¤Ç»Ø¤µ¤ì¤ë unsigned long ¤Ç»ØÄꤹ¤ë¡£
- ARCH_SET_GS
- GS ¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤ò addr ¤ËÀßÄꤹ¤ë¡£
- ARCH_GET_GS
- ¸½ºß¤Î¥¹¥ì¥Ã¥É¤Î GS ¥ì¥¸¥¹¥¿¤Î 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹Ãͤò¡¢ addr ¥Ñ¥é¥á¡¼¥¿¤Ç»Ø¤µ¤ì¤ë unsigned long ¤Ç»ØÄꤹ¤ë¡£
ÊÖ¤êÃÍ
À®¸ù¤¹¤ë¤È¡¢ arch_prctl() ¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢-1 ¤òÊÖ¤·¡¢ errno ¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£¥¨¥é¡¼
- EFAULT
- addr ¤¬¥¢¥ó¥Þ¥Ã¥×¤µ¤ì¤¿¥¢¥É¥ì¥¹¤ò»Ø¤·¤Æ¤¤¤ë¤«¡¢¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£
- EINVAL
- code ¤¬Í¸ú¤Ê¥µ¥Ö¥³¥Þ¥ó¥É¤Ç¤Ê¤¤¡£
- EPERM
- addr ¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£
½àµò
arch_prctl() ¤Ï Linux/x86-64 ³ÈÄ¥¤Ç¤¢¤ê¡¢°Ü¿¢À¤ò°Õ¿Þ¤·¤¿¥×¥í¥°¥é¥à¤Ç¤Ï»È¤¦¤Ù¤¤Ç¤Ê¤¤¡£Ãí°Õ
arch_prctl() ¤Ï¸½ºß¤Î¤È¤³¤í Linux/x86-64 ¾å¤Î 64 ¥Ó¥Ã¥È¥×¥í¥°¥é¥à¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£¿·¤·¤¤ 32 ¥Ó¥Ã¥È¥»¥°¥á¥ó¥È¥»¥ì¥¯¥¿¤¬¥í¡¼¥É¤µ¤ì¤¿¾ì¹ç¡¢ 64 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤ÏÊѹ¹¤µ¤ì¤ë¡£
ARCH_SET_GS ¤¬Ìµ¸ú¤Ë¤µ¤ì¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤â¤¢¤ë¡£
64 ¥Ó¥Ã¥È¥»¥°¥á¥ó¥È¥Ù¡¼¥¹¤Î¥³¥ó¥Æ¥¥¹¥È¥¹¥¤¥Ã¥Á¤Ï¡¢¤ä¤ä¹â²Á¤Ç¤¢¤ë¡£ LDT ¤ò modify_ldt(2) ¤ÇÀßÄꤷ¤Æ¥»¥°¥á¥ó¥È¥»¥ì¥¯¥¿¤ò»È¤¦¤«¡¢ 2.5 ¥«¡¼¥Í¥ë¤Î set_thread_area(2) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤³¤È¤Ë¤è¤ê¡¢ 32 ¥Ó¥Ã¥È¥Ù¡¼¥¹¤òÀßÄꤹ¤ë¤È¤¤¤¦¹â®¤ÊÂåÂؼêÃʤ⤢¤ë¡£ 4GB ¤è¤êÂ礤ʥ١¼¥¹¤òÀßÄꤷ¤¿¤¤¾ì¹ç¤Ë¤Î¤ß¡¢ arch_prctl() ¤¬É¬ÍפǤ¢¤ë¡£ ¥¢¥É¥ì¥¹¶õ´Ö¤ÎºÇ½é¤Î 2GB ¤Ë¤¢¤ë¥á¥â¥ê¤Ï¡¢ mmap(2) ¤Ë MAP_32BIT ¥Õ¥é¥°¤ò»ØÄꤷ¤Æ³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¥Ð¡¼¥¸¥ç¥ó 2.3.5 »þÅÀ¤Ç¤Ï¡¢glibc ¤Ë¤Ï arch_prctl() ¤Î¥×¥í¥È¥¿¥¤¥×¤¬¤Ê¤¤¡£ º£¤Î¤È¤³¤í¥æ¡¼¥¶¤Ï¼«Ê¬¼«¿È¤ÇÀë¸À¤¹¤ëɬÍפ¬¤¢¤ë¡£ ¤³¤ì¤Ï¾Íè¤Î glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç½¤Àµ¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
FS ¤Ï¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Ç´û¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
´ØÏ¢¹àÌÜ
mmap(2), modify_ldt(2), prctl(2), set_thread_area(2)AMD X86-64 Programmer's manual
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre