¤³¤Î¾Ï¤ÎÌܼ¡¤Ë¤â¤É¤ë
Á°ÊÇ:1.9 »þ·×´ÉÍý¤Ë¤â¤É¤ë
¼¡ÊÇ:Âè2¾Ï ¥Ç¥£¥¹¥×¥ì¥¤¥×¥ê¥ß¥Æ¥£¥Ö¤Ë¤¹¤¹¤à


1.10 ¥·¥¹¥Æ¥à´ÉÍýµ¡Ç½

¥·¥¹¥Æ¥à´ÉÍýµ¡Ç½¤Ç¤Ï¡¢²¼µ­¤Î¤è¤¦¤Êµ¡Ç½¤òÄ󶡤·¤Æ¤¤¤ë¡£

1.10.1 ¥Ç¡¼¥¿ / Äê¿ô¤ÎÄêµÁ

¢¢ OS¥Ð¡¼¥¸¥ç¥ó

¥·¥¹¥Æ¥à´ÉÍýµ¡Ç½¤È¤·¤Æ OS ¥Ð¡¼¥¸¥ç¥ó¤Î¼èÆÀµ¡Ç½¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¡£

typedef struct {
    UH  maker;      /* ¥á¡¼¥«¡¼ */
    UH  id;         /* ·Á¼°ÈÖ¹æ */
    UH  spver;      /* »ÅÍͽñ¥Ð¡¼¥¸¥ç¥ó */
    UH  prver;      /* À½ÉʥС¼¥¸¥ç¥ó */
    UH  prno[4];    /* À½ÉÊ´ÉÍý¾ðÊó */
    UH  cpu;        /* CPU ¾ðÊó */
    UH  var;        /* ¥Ð¥ê¥¨¡¼¥·¥ç¥óµ­½Ò»Ò */
} T_VER;

1.10.2 ¥·¥¹¥Æ¥à¥³¡¼¥ë

def_exc
Ê
Îã³°½èÍý¥Ï¥ó¥É¥éÄêµÁ

¡Ú·Á¼°¡Û

ERR def_exc(W exckind, FP exchdr)

¡Ú¥Ñ¥é¥á¡¼¥¿¡Û

W   exckind Îã³°Í×°ø(¥¤¥ó¥×¥ê¥á¥ó¥È°Í¸)
FP  exchdr  Îã³°½èÍý¥Ï¥ó¥É¥é³«»Ï¥¢¥É¥ì¥¹
            NULL    Îã³°½èÍý¥Ï¥ó¥É¥é¤ÎÄêµÁ²ò½ü

¡Ú¥ê¥¿¡¼¥óÃÍ¡Û

¡á 0    Àµ¾ï
¡ã 0    ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)

¡Ú²òÀâ¡Û

»ØÄꤷ¤¿Îã³°Í×°ø¤ËÂбþ¤¹¤ë¼«¥¿¥¹¥¯¤ÎÎã³°½èÍý¥Ï¥ó¥É¥é¤òÄêµÁ¤¹¤ë¡£

Ʊ¤¸Í×°ø¤ËÂФ¹¤ëÎã³°½èÍý¥Ï¥ó¥É¥é¤¬¤¹¤Ç¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ ¸å¤«¤éÄêµÁ¤·¤¿Îã³°½èÍý¥Ï¥ó¥É¥é¤¬Í­¸ú¤È¤Ê¤ë¡£

Îã³°Í×°ø¤ÎÆâÍÆ¤Ï¥¤¥ó¥×¥ê¥á¥ó¥È¤Ë°Í¸¤¹¤ë¡£

¡Ú¥¨¥é¡¼¥³¡¼¥É¡Û

ER_ADR  : ¥¢¥É¥ì¥¹(exc_hdr)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
ER_CTX  : ¥³¥ó¥Æ¥­¥¹¥È¥¨¥é¡¼(»ÈÍÑÉԲĤΥ·¥¹¥Æ¥à¥³¡¼¥ë¤òȯ¹Ô¤·¤¿)¡£
ER_PAR  : ¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë(exc_vec¤ÇÄêµÁ¤·¤¿Îã³°Í×°ø¤¬ÉÔÀµ)¡£

ret_exc
Ê
Îã³°½èÍý¥Ï¥ó¥É¥é½ªÎ»

¡Ú·Á¼°¡Û

VOID    ret_exc(W ret)

¡Ú¥Ñ¥é¥á¡¼¥¿¡Û

W   ret ¥ê¥¿¡¼¥ó»ØÄê
¡á 0
Îã³°¤¬È¯À¸¤·¤¿°ÌÃÖ¤«¤é¼Â¹Ô¤òºÆ³«¤·¡¢ËÜ¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤é¤ÏÌá¤é¤Ê¤¤¡£ ºÆ³«¤¬ÉÔ²Äǽ¤Ê¼ïÎà¤ÎÎã³°¤Î¾ì¹ç¤Ë¤Ï¡¢¥×¥í¥»¥¹¤Ï°Û¾ï½ªÎ»¤¹¤ë¡£
¡â 0
Îã³°¤¬È¯À¸¤·¤¿°ÌÃÖ¤«¤é¤ÏºÆ³«¤»¤º¤Ë¡¢ËÜ¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÌá¤Ã¤Æ¡¢¤½¤Î ¤Þ¤Þ¼Â¹Ô¤ò³¹Ô¤¹¤ë¡£ ¤³¤Î¾ì¹ç¡¢Ä̾ï¤Ï¥Ï¥ó¥É¥é¤ÎºÇ¸å¤Ç longjmp () ¤Ë¤è¤êÀ©¸æ ¤ò¾¤Ø°Ü¹Ô¤¹ ¤ë¤³¤È¤Ë¤Ê¤ë¡£

¡Ú¥ê¥¿¡¼¥óÃÍ¡Û

¥ê¥¿¡¼¥ó¤·¤Ê¤¤ (ret = 0 ¤Î»þ)
¡á0   Àµ¾ï (ret¡â 0 ¤Î»þ)

¡Ú²òÀâ¡Û

Îã³°½èÍý¥Ï¥ó¥É¥é¤ò½ªÎ»¤¹¤ë¡£

Îã³°½èÍý¥Ï¥ó¥É¥é¤ÎºÇ¸å¤Ë¤Ïɬ¤ºËÜ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¼Â¹Ô¤·¤Ê¤¯¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ ¤Þ¤¿¡¢ËÜ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÎã³°½èÍý¥Ï¥ó¥É¥éÆâ¤Ç¤Î¤ßȯ¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ ¤½¤ì°Ê³°¤ÎÉôʬ¤Çȯ¹Ô¤µ¤ì¤¿»þ¤Ï¥·¥¹¥Æ¥à¥¨¥é¡¼¤È¤Ê¤ë¡£

¡Ú¥¨¥é¡¼¥³¡¼¥É¡Û

ȯÀ¸¤·¤Ê¤¤¡£

get_ver
Ê
¥Ð¡¼¥¸¥ç¥ó¤Î¼èÆÀ

¡Ú·Á¼°¡Û

ERR get_ver(T_VER* version)

¡Ú¥Ñ¥é¥á¡¼¥¿¡Û

T_VER*  version ¥Ð¡¼¥¸¥ç¥ó¤Î³ÊǼÎΰè

¡Ú¥ê¥¿¡¼¥óÃÍ¡Û

¡á0    Àµ¾ï
¡ã0    ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)

¡Ú²òÀâ¡Û

OS ¤Î¥Ð¡¼¥¸¥ç¥ó¤ò¼è¤ê½Ð¤¹¡£

T_VER ¤Ï TRON ÂηϤǶ¦Ä̤ΰʲ¼¤Î¹½Â¤ÂΤǤ¢¤ë¡£

    typedef struct {
        UH  maker;      -- ¥á¡¼¥«¡¼
        UH  id;         -- ·Á¼°ÈÖ¹æ
        UH  spver;      -- »ÅÍͽñ¥Ð¡¼¥¸¥ç¥ó
        UH  prver;      -- À½ÉʥС¼¥¸¥ç¥ó
        UH  prno[4];    -- À½ÉÊ´ÉÍý¾ðÊó
        UH  cpu;        -- CPU ¾ðÊó
        UH  var;        -- ¥Ð¥ê¥¨¡¼¥·¥ç¥óµ­½Ò»Ò
    } T_VER;

¡Ú¥¨¥é¡¼¥³¡¼¥É¡Û

ER_ADR  : ¥¢¥É¥ì¥¹(version)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£

get_cnf
Ê
¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¾ðÊó¤Î¼èÆÀ

¡Ú·Á¼°¡Û

WERR    get_cnf(TC* name, VP value, W len)

¡Ú¥Ñ¥é¥á¡¼¥¿¡Û

TC* name    ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¹àÌÜ̾

VP  value   ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¾ðÊó¤Î³ÊǼÎΰè

W   len     ¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¾ðÊó¤Î³ÊǼÎΰè¤Î¥Ð¥¤¥È¥µ¥¤¥º

¡Ú¥ê¥¿¡¼¥óÃÍ¡Û

¡á 0    Àµ¾ï(W ¤Î¿ôÃ;ðÊó)
¡ä 0    Àµ¾ï(TC ʸ»úÎó¾ðÊó¡§Ê¸»ú¿ô)
¡ã 0    ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)

¡Ú²òÀâ¡Û

»ØÄꤷ¤¿¹àÌÜ̾¤Î¥·¥¹¥Æ¥à¤Î¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¾ðÊó¤ò¼è¤ê½Ð¤¹¡£

¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¾ðÊó¤Ï W ¤Î¿ôÃͤޤ¿¤Ï TC ʸ»úÎó¤Ç¤¢¤ê¡¢ ´Ø¿ôÃͤˤè¤ê¶èÊ̤µ¤ì¤ë¡£

´Ø¿ôÃÍ = 0 :
W ¤Î¿ôÃ;ðÊó
´Ø¿ôÃÍ > 0 :
TC ʸ»úÎó¾ðÊó
´Ø¿ôÃͤÏʸ»ú¿ô¤Ç¡¢Ê¸»úÎó¤ÎºÇ¸å¤Ë¤Ï 0 ¤¬³ÊǼ¤µ¤ì¤ë¡£
³ÊǼÎΰ褬ÉÔ­¤¹¤ë¤È¤­¤Ï³ÊǼÎΰè¤Î¥µ¥¤¥ºÊ¬¤Î¤ß³ÊǼ¤µ¤ì¤ë¡£

¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¾ðÊó¤Î¹àÌÜ̾¤Ï¥¤¥ó¥×¥ê¥á¥ó¥È¤Ë°Í¸¤¹¤ë¡£

¡Ú¥¨¥é¡¼¥³¡¼¥É¡Û

ER_ADR      : ¥¢¥É¥ì¥¹(name)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
ER_NOEXS    : ¹àÌÜ̾(name)¤Ï¸ºß¤·¤Æ¤¤¤Ê¤¤¡£
ER_PAR      : ¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë¡£


¤³¤Î¾Ï¤ÎÌܼ¡¤Ë¤â¤É¤ë
Á°ÊÇ:1.9 »þ·×´ÉÍý¤Ë¤â¤É¤ë
¼¡ÊÇ:Âè2¾Ï ¥Ç¥£¥¹¥×¥ì¥¤¥×¥ê¥ß¥Æ¥£¥Ö¤Ë¤¹¤¹¤à