OSDN Git Service

(none)
authorryuz <ryuz>
Thu, 21 Dec 2006 15:36:34 +0000 (15:36 +0000)
committerryuz <ryuz>
Thu, 21 Dec 2006 15:36:34 +0000 (15:36 +0000)
kernel/build/common/gmake/knlsrc.inc
kernel/include/object/tskobj.h
kernel/source/core/tmq/add_tmq.c

index 6fb32ee..7f38750 100755 (executable)
@@ -177,6 +177,7 @@ CORE_HEADERS   = $(INC_DIR)/core/adtq.h                     \
                  $(INC_DIR)/core/que.h                 \
                  $(INC_DIR)/core/rdq.h                 \
                  $(INC_DIR)/core/sys.h                 \
+                 $(INC_DIR)/core/tim.h                 \
                  $(INC_DIR)/core/tmq.h                 \
                  $(INC_DIR)/core/toq.h                 \
                  $(INC_DIR)/core/dpc.h
@@ -199,7 +200,7 @@ MBXOBJ_HEADERS = $(INC_DIR)/object/mbxobj.h
 
 MPFOBJ_HEADERS = $(INC_DIR)/object/mpfobj.h
 
-TIMOBJ_HEADERS = $(INC_DIR)/object/timobj.h
+TIMOBJ_HEADERS = 
 
 INHOBJ_HEADERS = $(INC_DIR)/object/inhobj.h
 
index 96d548c..2f520ce 100755 (executable)
@@ -326,6 +326,11 @@ typedef _KERNEL_T_LEAST_UD                         _KERNEL_TCB_T_SUSCNT;                   /**< %jp{強制待ち要
 #endif
 
 
+typedef _KERNEL_T_MTXHDL                               _KERNEL_TSK_T_MTXHDL;
+typedef _KERNEL_T_MTXHDL                               _KERNEL_TCB_T_MTXHDL;
+#define _KERNEL_TCB_TBITDEF_MTXHDL
+
+
 /*  %jp{タスクデータ}%en{Task data} */
 #if _KERNEL_TCB_BITFIELD                       /* %jp{TCBにビットフィールドを利用する場合} */
 
@@ -544,6 +549,9 @@ typedef struct _kernel_t_tcb
        _KERNEL_TCB_T_SUSCNT    suscnt          _KERNEL_TCB_TBITDEF_SUSCNT;             /**< %jp{強制待ち要求ネスト回数}%en{Suspension count} */
 #endif
 
+#if _KERNEL_TCB_MTXHDL
+       _KERNEL_TCB_T_MTXHDL    mtxhdl          _KERNEL_TCB_TBITDEF_MTXHDL;             /**< %jp{所有するミューテックスのリスト} */      
+#endif
 
 #if _KERNEL_TCB_ERCD
        _KERNEL_TCB_T_ERCD              ercd            _KERNEL_TCB_TBITDEF_ERCD;               /**< %jp{待ち解除時のエラーコード}%en{error code} */
@@ -621,6 +629,9 @@ typedef struct _kernel_t_tcb
        _KERNEL_TCB_T_SUSCNT    suscnt          _KERNEL_TCB_TBITDEF_SUSCNT;             /**< %jp{強制待ち要求ネスト回数}%en{Suspension count} */
 #endif
 
+#if _KERNEL_TCB_MTXHDL
+       _KERNEL_TCB_T_MTXHDL    mtxhdl          _KERNEL_TCB_TBITDEF_MTXHDL;             /**< %jp{所有するミューテックスのリスト} */      
+#endif
 
 #if _KERNEL_TCB_ERCD
        _KERNEL_TCB_T_ERCD              ercd            _KERNEL_TCB_TBITDEF_ERCD;               /**< %jp{待ち解除時のエラーコード}%en{error code} */
@@ -849,6 +860,15 @@ extern  _KERNEL_T_TCB                                      *_kernel_tcb_tbl[];                                                                             /**< %jp{タスクコン
 #define _KERNEL_TSK_GET_SUSCNT(tcb)                    (0)
 #endif
 
+/* mtxhdl */
+#if _KERNEL_TCB_MTXHDL
+#define _KERNEL_TSK_SET_MTXHDL(tcb, x)         do { (tcb)->mtxhdl = (x); } while(0)
+#define _KERNEL_TSK_GET_MTXHDLtcb)                     ((tcb)->mtxhdl)
+#else
+#define _KERNEL_TSK_SET_MTXHDL(tcb, x)         do { } while(0)
+#define _KERNEL_TSK_GET_MTXHDL(tcb)                    _KERNEL_MTXHDL_NULL
+#endif
+
 /* ercd */
 #if _KERNEL_TCB_ERCD
 #define _KERNEL_TSK_SET_ERCD(tcb, x)           do { (tcb)->ercd = (x); } while(0)
index 5f9a6e4..eb7fc8b 100755 (executable)
@@ -26,6 +26,9 @@ void _kernel_add_tmq(
                return;
        }
        
+       /* 次のティックまでの時間を加算しておく */
+       pk_timobj->lefttim += _KERNEL_SYS_GET_TIC();
+       
        /* リストに登録 */
        if ( tmqcb->head == NULL )
        {