OSDN Git Service

(none)
authorryuz <ryuz>
Sat, 3 May 2008 07:51:30 +0000 (07:51 +0000)
committerryuz <ryuz>
Sat, 3 May 2008 07:51:30 +0000 (07:51 +0000)
kernel/build/ia32/i386/gcc/gmake.mak
kernel/build/ia32/pcat/gcc/gmake.mak [new file with mode: 0755]
kernel/source/arch/irc/ia32/pcat/dis_int.c
kernel/source/arch/irc/ia32/pcat/ena_int.c
kernel/source/arch/irc/ia32/pcat/kini_irc.c
sample/ia32/pcat/gcc/gmake.mak

index 5736d59..d2de263 100755 (executable)
@@ -64,12 +64,6 @@ CFGRTR     = h4acfg-i386
 CSRCS += $(SRC_PROC_DIR)/val_int.c
 CSRCS += $(SRC_PROC_DIR)/kini_prc.c
 
-#         $(SRC_IRC_DIR)/kini_irc.c                    \
-#         $(SRC_IRC_DIR)/kexe_irc.c                    \
-#         $(SRC_IRC_DIR)/ena_int.c                     \
-#         $(SRC_IRC_DIR)/dis_int.c                     \
-#         $(SRC_IRC_DIR)/vclr_int.c
-
 
 # アセンブラファイルの追加
 ASRCS += $(SRC_PROC_CC_DIR)/kdis_int.S
diff --git a/kernel/build/ia32/pcat/gcc/gmake.mak b/kernel/build/ia32/pcat/gcc/gmake.mak
new file mode 100755 (executable)
index 0000000..6ea02d6
--- /dev/null
@@ -0,0 +1,166 @@
+# ----------------------------------------------------------------------------
+# Hyper Operating System V4 Advance
+#  makefile for PC/AT IA-32
+#
+# Copyright (C) 1998-2008 by Project HOS
+# http://sourceforge.jp/projects/hos/
+# ----------------------------------------------------------------------------
+
+
+# --------------------------------------
+#  %jp{各種設定}{setting}
+# --------------------------------------
+
+# %jp{ターゲットライブラリ名}%en{target library name}
+TARGET ?= libhosv4a
+
+
+# %jp{ツール定義}%jp{tools}
+GCC_ARCH ?= i386-elf-
+CMD_CC   ?= $(GCC_ARCH)gcc
+CMD_ASM  ?= $(GCC_ARCH)gcc
+CMD_LIBR ?= $(GCC_ARCH)ar
+
+
+# %jp{アーキテクチャ定義}%en{architecture}
+ARCH_NAME ?= pcat
+ARCH_PROC ?= ia32/i386
+ARCH_IRC  ?= ia32/pcat
+ARCH_CC   ?= gcc
+
+
+# %jp{ディレクトリ定義}%en{directories}
+TOP_DIR           = ../../../../..
+KERNEL_DIR        = $(TOP_DIR)/kernel
+KERNEL_MAKINC_DIR = $(KERNEL_DIR)/build/common/gmake
+INC_PROC_DIR      = $(KERNEL_DIR)/include/arch/proc/$(ARCH_PROC)
+INC_IRC_DIR       = $(KERNEL_DIR)/include/arch/irc/$(ARCH_IRC)
+SRC_PROC_DIR      = $(KERNEL_DIR)/source/arch/proc/$(ARCH_PROC)
+SRC_PROC_CC_DIR   = $(KERNEL_DIR)/source/arch/proc/$(ARCH_PROC)/$(ARCH_CC)
+SRC_IRC_DIR       = $(KERNEL_DIR)/source/arch/irc/$(ARCH_IRC)
+SRC_IRC_CC_DIR    = $(KERNEL_DIR)/source/arch/irc/$(ARCH_IRC)/$(ARCH_CC)
+CFGRTR_DIR        = $(TOP_DIR)/cfgrtr/build/gcc
+
+
+# %jp{コンフィギュレータ定義}%en{kernel configurator}
+CFGRTR = h4acfg-$(ARCH_NAME)
+
+
+# %jp{カーネル指定}%en{kernel flag}
+KERNEL = Yes
+
+
+# %jp{共通定義読込み}%en{common setting}
+include $(KERNEL_MAKINC_DIR)/common.inc
+
+
+# %jp{パス設定}%en{add source directories}
+INC_DIRS += $(INC_PROC_DIR) $(INC_IRC_DIR)
+SRC_DIRS += $(SRC_PROC_DIR) $(SRC_PROC_DIR) $(SRC_PROC_CC_DIR) $(SRC_IRC_DIR) $(SRC_IRC_CC_DIR)
+
+
+# %jp{オプションフラグ}%en{option flags}
+AFLAGS  = -march=i386
+CFLAGS  = -march=i386
+ARFLAGS = 
+
+
+# %jp{コンパイラ依存の設定読込み}%en{compiler dependent definitions}
+include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_d.inc
+
+# %jp{ライブラリ生成用設定読込み}%en{definitions for library}
+include $(KERNEL_MAKINC_DIR)/maklib_d.inc
+
+
+
+
+# --------------------------------------
+#  %jp{ソースファイル}%en{source files}
+# --------------------------------------
+
+# %jp{アセンブラファイルの追加}%en{assembry sources}
+ASRCS += $(SRC_PROC_CC_DIR)/kdis_int.S
+ASRCS += $(SRC_PROC_CC_DIR)/kena_int.S
+ASRCS += $(SRC_PROC_CC_DIR)/kwai_int.S
+ASRCS += $(SRC_PROC_CC_DIR)/kcre_ctx.S
+ASRCS += $(SRC_PROC_CC_DIR)/ksta_ctx.S
+ASRCS += $(SRC_PROC_CC_DIR)/kswi_ctx.S
+ASRCS += $(SRC_PROC_CC_DIR)/krst_ctx.S
+ASRCS += $(SRC_PROC_CC_DIR)/kexc_hdr.S
+ASRCS += $(SRC_PROC_CC_DIR)/kint_hdr.S
+ASRCS += $(SRC_PROC_CC_DIR)/koutpb.S
+ASRCS += $(SRC_PROC_CC_DIR)/koutph.S
+ASRCS += $(SRC_PROC_CC_DIR)/koutpw.S
+ASRCS += $(SRC_PROC_CC_DIR)/kinpb.S
+ASRCS += $(SRC_PROC_CC_DIR)/kinph.S
+ASRCS += $(SRC_PROC_CC_DIR)/kinpw.S
+ASRCS += $(SRC_PROC_CC_DIR)/klidt.S
+
+
+# %jp{C言語ファイルの追加}%en{C sources}
+CSRCS += $(SRC_PROC_DIR)/val_int.c
+CSRCS += $(SRC_PROC_DIR)/kini_prc.c
+CSRCS += $(SRC_IRC_DIR)/kini_irc.c
+CSRCS += $(SRC_IRC_DIR)/kexe_irc.c
+CSRCS += $(SRC_IRC_DIR)/dis_int.c
+CSRCS += $(SRC_IRC_DIR)/ena_int.c
+
+
+
+# %jp{カーネル共通ソースの追加}%en{kernel common sources}
+include $(KERNEL_MAKINC_DIR)/knlsrc.inc
+
+
+
+
+# --------------------------------------
+#  %jp{ルール定義}%en{rules}
+# --------------------------------------
+
+
+# %jp{ALL}%en{all}
+.PHONY : all
+all: makelib_all
+       $(MAKE) -C $(CFGRTR_DIR) -f gmake.mak TARGET=$(CFGRTR) ARCH_PROC=$(ARCH_PROC) ARCH_IRC=$(ARCH_IRC)
+
+# %jp{クリーン}%en{clean}
+.PHONY : clean
+clean: makelib_clean
+       $(MAKE) -C $(CFGRTR_DIR) -f gmake.mak TARGET=$(CFGRTR) ARCH_PROC=$(ARCH_PROC) ARCH_IRC=$(ARCH_IRC) clean
+       $(RM) -f *.lst
+
+# %jp{依存関係更新}%en{make depend}
+.PHONY : depend
+depend: makelib_depend
+
+# %jp{ソース一括コピー}%en{source files copy}
+.PHONY : srccpy
+srccpy: makelib_srccpy
+
+
+# %jp{ライブラリ生成用設定読込み}%en{rules for library}
+include $(KERNEL_MAKINC_DIR)/maklib_r.inc
+
+# %jp{コンパイラ依存のルール定義読込み}%en{rules for compiler}
+include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_r.inc
+
+
+
+# --------------------------------------
+#  %jp{依存関係}%en{dependency}
+# --------------------------------------
+
+# %jp{カーネル依存関係読込み}{dependency list of kernel sources}
+include $(KERNEL_MAKINC_DIR)/knldep.inc
+
+
+$(OBJS_DIR)/val_int.$(EXT_OBJ) :       $(COMMON_HEADERS)
+$(OBJS_DIR)/kini_prc.$(EXT_OBJ)        :       $(COMMON_HEADERS)
+$(OBJS_DIR)/kini_irc.$(EXT_OBJ)        :       $(COMMON_HEADERS)
+$(OBJS_DIR)/kexe_irc.$(EXT_OBJ)        :       $(COMMON_HEADERS)
+$(OBJS_DIR)/ena_int.$(EXT_OBJ) :       $(COMMON_HEADERS)
+$(OBJS_DIR)/dis_int.$(EXT_OBJ) :       $(COMMON_HEADERS)
+
+
+
+# end of file
index cba015c..f64b698 100755 (executable)
@@ -24,11 +24,11 @@ ER dis_int(INTNO intno)
        
        if ( intno >= 0 && intno < 8 )
        {
-               _kernel_outpb(_KERNEL_IRC_PIC1_OCW1, (_kernel_inpb(KERNEL_IRC_PIC1_IMR) | (1 << intno)));
+               _kernel_outpb(_KERNEL_IRC_PIC1_OCW1, (_kernel_inpb(_KERNEL_IRC_PIC1_IMR) | (1 << intno)));
        }
        else
        {
-               _kernel_outpb(_KERNEL_IRC_PIC2_OCW1, (_kernel_inpb(KERNEL_IRC_PIC2_IMR) | (1 << (intno - 8))));
+               _kernel_outpb(_KERNEL_IRC_PIC2_OCW1, (_kernel_inpb(_KERNEL_IRC_PIC2_IMR) | (1 << (intno - 8))));
        }
        
        return E_OK;
index b00a99b..db7399d 100755 (executable)
@@ -24,11 +24,11 @@ ER ena_int(INTNO intno)
        
        if ( intno >= 0 && intno < 8 )
        {
-               _kernel_outpb(_KERNEL_IRC_PIC1_OCW1, (_kernel_inpb(KERNEL_IRC_PIC1_IMR) & ~(1 << intno)));
+               _kernel_outpb(_KERNEL_IRC_PIC1_OCW1, (_kernel_inpb(_KERNEL_IRC_PIC1_IMR) & ~(1 << intno)));
        }
        else
        {
-               _kernel_outpb(_KERNEL_IRC_PIC2_OCW1, (_kernel_inpb(KERNEL_IRC_PIC2_IMR) & ~(1 << (intno - 8))));
+               _kernel_outpb(_KERNEL_IRC_PIC2_OCW1, (_kernel_inpb(_KERNEL_IRC_PIC2_IMR) & ~(1 << (intno - 8))));
        }
        
        return E_OK;
index 2a483e8..48604f4 100755 (executable)
@@ -23,12 +23,14 @@ void _kernel_ini_irc(void)
        _kernel_outpb(_KERNEL_IRC_PIC1_ICW2, _KERNEL_IRC_PIC1_VECT);
        _kernel_outpb(_KERNEL_IRC_PIC1_ICW3, 0x04);
        _kernel_outpb(_KERNEL_IRC_PIC1_ICW4, 0x01);
+       _kernel_outpb(_KERNEL_IRC_PIC1_OCW3, 0x4a);
        
        /* PIC2 初期化 */
        _kernel_outpb(_KERNEL_IRC_PIC2_ICW1, 0x11);
        _kernel_outpb(_KERNEL_IRC_PIC2_ICW2, _KERNEL_IRC_PIC2_VECT);
        _kernel_outpb(_KERNEL_IRC_PIC2_ICW3, 0x02);
        _kernel_outpb(_KERNEL_IRC_PIC2_ICW4, 0x01);
+       _kernel_outpb(_KERNEL_IRC_PIC2_OCW3, 0x4a);
        
        /* 割込み全マスク */
        _kernel_outpb(_KERNEL_IRC_PIC2_OCW1, 0xff);
index b8803b4..f19e3fa 100755 (executable)
@@ -24,7 +24,7 @@ CMD_OBJCNV ?= $(GCC_ARCH)objcopy
 
 
 # %jp{アーキテクチャ定義}%en{architecture}
-ARCH_NAME ?= i386
+ARCH_NAME ?= pcat
 ARCH_CC   ?= gcc
 
 
@@ -33,7 +33,7 @@ TOP_DIR           = ../../../..
 KERNEL_DIR        = $(TOP_DIR)/kernel
 KERNEL_CFGRTR_DIR = $(TOP_DIR)/cfgrtr/build/gcc
 KERNEL_MAKINC_DIR = $(KERNEL_DIR)/build/common/gmake
-KERNEL_BUILD_DIR  = $(KERNEL_DIR)/build/ia32/i386/gcc
+KERNEL_BUILD_DIR  = $(KERNEL_DIR)/build/ia32/pcat/gcc
 
 
 # %jp{コンフィギュレータ定義}