| 1 | $ |
|---|
| 2 | $ ¥Ñ¥¹2€Î¥¿¡Œ¥²¥Ã¥È°Íž¥Æ¥ó¥×¥ì¡Œ¥È¡ÊMac OS XÍÑ¡Ë |
|---|
| 3 | $ |
|---|
| 4 | |
|---|
| 5 | $ |
|---|
| 6 | $ »ÈÍрǀ€ë³ä¹þ€ßÈÖ¹æ€È€œ€ì€ËÂбþ€¹€ë³ä¹þ€ß¥Ï¥ó¥É¥éÈÖ¹æ |
|---|
| 7 | $ |
|---|
| 8 | $ ³ä¹þ€ßÈÖ¹æ€È³ä¹þ€ß¥Ï¥ó¥É¥éÈÖ¹æ€Ï¡€¥·¥°¥Ê¥ëÈÖ¹æ€Ë°ìÃ×€µ€»€ë¡¥1¡Á31€Î |
|---|
| 9 | $ ¥·¥°¥Ê¥ëÈÖ¹æ€ÎÆâ¡€SIGKILL¡Ê¡á9¡Ë¡€SIGSTOP¡Ê¡á17¡Ë¡€SIGUSR2¡Ê¡á31¡Ë°Ê |
|---|
| 10 | $ ³°€¬»ÈÍрǀ€ë¡¥ |
|---|
| 11 | $ |
|---|
| 12 | $INTNO_VALID = { 1, 2,..., 8; 10, 11,..., 16; 18, 19,..., 30 }$ |
|---|
| 13 | $INHNO_VALID = INTNO_VALID$ |
|---|
| 14 | |
|---|
| 15 | $ |
|---|
| 16 | $ ATT_ISR€Ç»ÈÍрǀ€ë³ä¹þ€ßÈÖ¹æ€È€œ€ì€ËÂбþ€¹€ë³ä¹þ€ß¥Ï¥ó¥É¥éÈÖ¹æ |
|---|
| 17 | $ |
|---|
| 18 | $INTNO_ATTISR_VALID = INTNO_VALID$ |
|---|
| 19 | $INHNO_ATTISR_VALID = INHNO_VALID$ |
|---|
| 20 | |
|---|
| 21 | $ |
|---|
| 22 | $ DEF_INT¡¿DEF_EXC€Ç»ÈÍрǀ€ë³ä¹þ€ß¥Ï¥ó¥É¥éÈֹ桿CPUÎã³°¥Ï¥ó¥É¥éÈÖ¹æ |
|---|
| 23 | $ |
|---|
| 24 | $INHNO_DEFINH_VALID = INHNO_VALID$ |
|---|
| 25 | $EXCNO_DEFEXC_VALID = INHNO_VALID$ |
|---|
| 26 | |
|---|
| 27 | $ |
|---|
| 28 | $ CFG_INT€Ç»ÈÍрǀ€ë³ä¹þ€ßÈÖ¹æ€È³ä¹þ€ßÍ¥ÀèÅÙ |
|---|
| 29 | $ |
|---|
| 30 | $ ³ä¹þ€ßÍ¥ÀèÅـϡ€-1¡Á-7€¬»ÈÍрǀ€ë¡¥-7€ÏNMI€È°·€Š¡¥ |
|---|
| 31 | $ |
|---|
| 32 | $INTNO_CFGINT_VALID = INTNO_VALID$ |
|---|
| 33 | $INTPRI_CFGINT_VALID = { -1, -2,..., -7 }$ |
|---|
| 34 | |
|---|
| 35 | $ |
|---|
| 36 | $ ¥¹¥¿¥Ã¥¯Îΰè€Î³ÎÊÝŽØ¿ô |
|---|
| 37 | $ |
|---|
| 38 | $ Intel¥×¥í¥»¥Ã¥µ€Ç€Ï¡€¥¹¥¿¥Ã¥¯¥Ý¥€¥ó¥¿€ò16¥Ð¥€¥È¶³Š€Ë¥¢¥é¥€¥ó€µ€»€ë |
|---|
| 39 | $ ɬÍ×€¬€¢€ë¡¥ |
|---|
| 40 | $ |
|---|
| 41 | $FUNCTION ALLOC_STACK$ |
|---|
| 42 | static STK_T $ARGV[1]$[COUNT_STK_T($ARGV[2]$)] |
|---|
| 43 | $SPC$__attribute__((aligned(16)));$NL$ |
|---|
| 44 | $RESULT = FORMAT("ROUND_STK_T(%1%)", ARGV[2])$ |
|---|
| 45 | $END$ |
|---|
| 46 | |
|---|
| 47 | $ |
|---|
| 48 | $ Éžœà¥Æ¥ó¥×¥ì¡Œ¥È¥Õ¥¡¥€¥ë€Î¥€¥ó¥¯¥ë¡Œ¥É |
|---|
| 49 | $ |
|---|
| 50 | $INCLUDE "kernel/kernel.tf"$ |
|---|
| 51 | |
|---|
| 52 | /*$NL$ |
|---|
| 53 | $SPC$* Target-dependent Definitions (Mac OS X)$NL$ |
|---|
| 54 | $SPC$*/$NL$ |
|---|
| 55 | $NL$ |
|---|
| 56 | |
|---|
| 57 | $ |
|---|
| 58 | $ ¥Þ¥¹¥¯€Ç€€Ê€€¥·¥°¥Ê¥ë€È¥«¡Œ¥Í¥ë€¬»È€Š¥·¥°¥Ê¥ë€ËŽØ€¹€ëÀßÄê |
|---|
| 59 | $ |
|---|
| 60 | $ SIGKILL¡Ê¥Þ¥¹¥¯ÉÔ²Ä¡Ë |
|---|
| 61 | $ SIGSTOP¡Ê¥Þ¥¹¥¯ÉÔ²Ä¡Ë |
|---|
| 62 | $ SIGUSR2¡Ê¥«¡Œ¥Í¥ë€¬ÍøÍÑ¡Ë |
|---|
| 63 | $ |
|---|
| 64 | $INT.INTPRI[SIGKILL] = -7$ |
|---|
| 65 | $INT.INTPRI[SIGSTOP] = -7$ |
|---|
| 66 | $INT.INTPRI[SIGUSR2] = -7$ |
|---|
| 67 | |
|---|
| 68 | $ |
|---|
| 69 | $ CFG_INT€Î¥¿¡Œ¥²¥Ã¥È°Íž€Î¥š¥é¡Œ¥Á¥§¥Ã¥¯ |
|---|
| 70 | $ |
|---|
| 71 | $FOREACH intno INT.ORDER_LIST$ |
|---|
| 72 | $IF (INT.INTATR[intno] & TA_EDGE) == 0$ |
|---|
| 73 | $ERROR INT.TEXT_LINE[intno]$E_RSATR: $FORMAT("Level trigger is not supported for intno `%1%\' in CFG_INT", INT.INTNO[intno])$$END$ |
|---|
| 74 | $END$ |
|---|
| 75 | $END$ |
|---|
| 76 | |
|---|
| 77 | $ |
|---|
| 78 | $ CPUÎã³°¥Ï¥ó¥É¥é€ËŽØ€¹€ëœèÍý |
|---|
| 79 | $ |
|---|
| 80 | $FOREACH excno EXC.ORDER_LIST$ |
|---|
| 81 | $ // ³ä¹þ€ß¥Ï¥ó¥É¥é€È€ÎœÅÊ£¥Á¥§¥Ã¥¯ |
|---|
| 82 | $IF LENGTH(INH.INHNO[excno])$ |
|---|
| 83 | $ERROR EXC.TEXT_LINE[excno]$E_OBJ: $FORMAT(_("%1% `%2%\' in %3% is duplicated with %4% `%5%\'"), "excno", EXC.EXCNO[excno], "DEF_EXC", "inhno", INH.INHNO[excno])$$END$ |
|---|
| 84 | $END$ |
|---|
| 85 | |
|---|
| 86 | $ // CPUÎã³°¥Ï¥ó¥É¥é€òÅÐÏ¿€·€¿¥·¥°¥Ê¥ë€ËŽØ€¹€ëÀßÄê |
|---|
| 87 | $IF LENGTH(INTNO[excno])$ |
|---|
| 88 | $INT.INTPRI[INTNO[excno]] = -7$ |
|---|
| 89 | $END$ |
|---|
| 90 | $END$ |
|---|
| 91 | |
|---|
| 92 | $ |
|---|
| 93 | $ ¥Ç¥Ð¥Ã¥°Íр˥ޥ¹¥¯€·€Ê€€¥·¥°¥Ê¥ë€ËŽØ€¹€ëÀßÄê |
|---|
| 94 | $ |
|---|
| 95 | $ SIGINT¡Ê¥Ç¥Ð¥Ã¥°ÍÑ¡Ë |
|---|
| 96 | $ SIGBUS¡Ê¥Ç¥Ð¥Ã¥°ÍÑ¡Ë |
|---|
| 97 | $ SIGSEGV¡Ê¥Ç¥Ð¥Ã¥°ÍÑ¡Ë |
|---|
| 98 | $ |
|---|
| 99 | $IF !LENGTH(INT.INTPRI[SIGINT])$ |
|---|
| 100 | $INT.INTPRI[SIGINT] = -7$ |
|---|
| 101 | $END$ |
|---|
| 102 | $IF !LENGTH(INT.INTPRI[SIGBUS])$ |
|---|
| 103 | $INT.INTPRI[SIGBUS] = -7$ |
|---|
| 104 | $END$ |
|---|
| 105 | $IF !LENGTH(INT.INTPRI[SIGSEGV])$ |
|---|
| 106 | $INT.INTPRI[SIGSEGV] = -7$ |
|---|
| 107 | $END$ |
|---|
| 108 | |
|---|
| 109 | $ |
|---|
| 110 | $ ³ä¹þ€ß¥Ï¥ó¥É¥é€ÎœéŽü²œ€ËɬÍ׀ʟðÊó |
|---|
| 111 | $ |
|---|
| 112 | |
|---|
| 113 | $ ³ä¹þ€ß¥Ï¥ó¥É¥é¿ô |
|---|
| 114 | #define TNUM_INHNO $LENGTH(INH.ORDER_LIST)$$NL$ |
|---|
| 115 | const uint_t _kernel_tnum_inhno = TNUM_INHNO;$NL$ |
|---|
| 116 | $NL$ |
|---|
| 117 | $FOREACH inhno INH.ORDER_LIST$ |
|---|
| 118 | $IF (INH.INHATR[inhno] & TA_NONKERNEL) == 0$ |
|---|
| 119 | INTHDR_ENTRY($INH.INHNO[inhno]$, $INH.INTHDR[inhno]$, $INT.INTPRI[INTNO[inhno]]$)$NL$ |
|---|
| 120 | $END$ |
|---|
| 121 | $END$ |
|---|
| 122 | $NL$ |
|---|
| 123 | |
|---|
| 124 | $ ³ä¹þ€ß¥Ï¥ó¥É¥éœéŽü²œ¥Æ¡Œ¥Ö¥ë |
|---|
| 125 | $IF LENGTH(INH.ORDER_LIST)$ |
|---|
| 126 | const INHINIB _kernel_inhinib_table[TNUM_INHNO] = {$NL$ |
|---|
| 127 | $JOINEACH inhno INH.ORDER_LIST ",\n"$ |
|---|
| 128 | $IF (INH.INHATR[inhno] & TA_NONKERNEL) == 0$ |
|---|
| 129 | $TAB${ ($INH.INHNO[inhno]$), ($INH.INHATR[inhno]$), (FP)(INT_ENTRY($INH.INHNO[inhno]$, $INH.INTHDR[inhno]$)), ($INT.INTPRI[INTNO[INH.INHNO[inhno]]]$) } |
|---|
| 130 | $ELSE$ |
|---|
| 131 | $TAB${ ($INH.INHNO[inhno]$), ($INH.INHATR[inhno]$), (FP)($INH.INTHDR[inhno]$), ($INT.INTPRI[INTNO[INH.INHNO[inhno]]]$) } |
|---|
| 132 | $END$ |
|---|
| 133 | $END$$NL$ |
|---|
| 134 | };$NL$ |
|---|
| 135 | $ELSE$ |
|---|
| 136 | TOPPERS_EMPTY_LABEL(const INHINIB, _kernel_inhinib_table);$NL$ |
|---|
| 137 | $END$ |
|---|
| 138 | $NL$ |
|---|
| 139 | |
|---|
| 140 | $ |
|---|
| 141 | $ ³ä¹þ€ßÍ¥ÀèÅÙËè€Î€œ€ì°Ê²Œ€Î³ä¹þ€ßÍ×µá€ò¥Þ¥¹¥¯€¹€ë€¿€á€ÎŸðÊó€Î¥Æ¡Œ¥Ö¥ë |
|---|
| 142 | $ |
|---|
| 143 | const sigset_t _kernel_sigmask_table[8] = {$NL$ |
|---|
| 144 | $FOREACH intpri { 0, -1,..., -6 }$ |
|---|
| 145 | $intmask = 0$ |
|---|
| 146 | $FOREACH intno { 1, 2, ..., 31 }$ |
|---|
| 147 | $IF ALT(INT.INTPRI[intno], 0) >= intpri$ |
|---|
| 148 | $intmask = intmask | (1 << (intno - 1))$ |
|---|
| 149 | $END$ |
|---|
| 150 | $END$ |
|---|
| 151 | $TAB$UINT32_C($FORMAT("0x%08x", intmask)$),$NL$ |
|---|
| 152 | $END$ |
|---|
| 153 | $TAB$UINT32_C($FORMAT("0x%08x", intmask)$)$NL$ |
|---|
| 154 | };$NL$ |
|---|
| 155 | |
|---|
| 156 | $ |
|---|
| 157 | $ ³ä¹þ€ßÍ×µá¶Ø»ß¥Õ¥é¥°ŒÂžœ€Î€¿€á€ÎÊÑ¿ô€ÎœéŽüÃÍ |
|---|
| 158 | $ |
|---|
| 159 | $sigmask_disint_init = 0$ |
|---|
| 160 | $FOREACH intno INT.ORDER_LIST$ |
|---|
| 161 | $IF (INT.INTATR[intno] & TA_ENAINT) == 0$ |
|---|
| 162 | $sigmask_disint_init = sigmask_disint_init | (1 << (INT.INTNO[intno] - 1))$ |
|---|
| 163 | $END$ |
|---|
| 164 | $END$ |
|---|
| 165 | $NL$ |
|---|
| 166 | const sigset_t _kernel_sigmask_disint_init = |
|---|
| 167 | UINT32_C($FORMAT("0x%08x", sigmask_disint_init)$);$NL$ |
|---|