e61d00351f
in BRANCH-smp-bochs revisions. - The general task was to make multiple CPU's which communicate through their APICs. So instead of BX_CPU and BX_MEM, we now have BX_CPU(x) and BX_MEM(y). For an SMP simulation you have several processors in a shared memory space, so there might be processors BX_CPU(0..3) but only one memory space BX_MEM(0). For cosimulation, you could have BX_CPU(0) with BX_MEM(0), then BX_CPU(1) with BX_MEM(1). WARNING: Cosimulation is almost certainly broken by the SMP changes. - to simulate multiple CPUs, you have to give each CPU time to execute in turn. This is currently implemented using debugger guards. The cpu loop steps one CPU for a few instructions, then steps the next CPU for a few instructions, etc. - there is some limited support in the debugger for two CPUs, for example printing information from each CPU when single stepping.
114 lines
2.1 KiB
Makefile
114 lines
2.1 KiB
Makefile
# Copyright (C) 2001 MandrakeSoft S.A.
|
|
#
|
|
# MandrakeSoft S.A.
|
|
# 43, rue d'Aboukir
|
|
# 75002 Paris - France
|
|
# http://www.linux-mandrake.com/
|
|
# http://www.mandrakesoft.com/
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this library; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
|
|
@SUFFIX_LINE@
|
|
|
|
|
|
SHELL = /bin/sh
|
|
|
|
@SET_MAKE@
|
|
|
|
CXX = @CXX@
|
|
CXXFLAGS = @CXXFLAGS@
|
|
|
|
LDFLAGS = @LDFLAGS@
|
|
LIBS = @LIBS@
|
|
X_LIBS = @X_LIBS@
|
|
X_PRE_LIBS = @X_PRE_LIBS@
|
|
RANLIB = @RANLIB@
|
|
|
|
|
|
|
|
BX_INCDIRS = -I.. -I../@INSTRUMENT_DIR@
|
|
|
|
APIC_OBJS = @APIC_OBJS@
|
|
|
|
OBJS = \
|
|
init.o \
|
|
access.o \
|
|
cpu.o resolve32.o fetchdecode.o \
|
|
exception.o \
|
|
ctrl_xfer_pro.o \
|
|
flag_ctrl_pro.o \
|
|
io_pro.o \
|
|
protect_ctrl_pro.o \
|
|
segment_ctrl_pro.o \
|
|
stack_pro.o \
|
|
lazy_flags.o \
|
|
paging.o \
|
|
vm8086.o \
|
|
tasking.o \
|
|
debugstuff.o \
|
|
arith32.o \
|
|
mult32.o \
|
|
data_xfer32.o \
|
|
logical32.o \
|
|
ctrl_xfer32.o \
|
|
stack32.o \
|
|
shift32.o \
|
|
arith8.o \
|
|
mult8.o \
|
|
data_xfer8.o \
|
|
logical8.o \
|
|
ctrl_xfer8.o \
|
|
shift8.o \
|
|
resolve16.o \
|
|
arith16.o \
|
|
mult16.o \
|
|
data_xfer16.o \
|
|
logical16.o \
|
|
ctrl_xfer16.o \
|
|
stack16.o \
|
|
shift16.o \
|
|
bit.o \
|
|
flag_ctrl.o \
|
|
io.o \
|
|
proc_ctrl.o \
|
|
protect_ctrl.o \
|
|
segment_ctrl.o \
|
|
soft_int.o \
|
|
string.o \
|
|
bcd.o \
|
|
$(APIC_OBJS)
|
|
|
|
BX_INCLUDES = ../bochs.h ../config.h
|
|
|
|
|
|
.@CPP_SUFFIX@.o:
|
|
$(CXX) @DASH@c $(CXXFLAGS) $(BX_INCDIRS) @CXXFP@$< @OFP@$@
|
|
|
|
|
|
libcpu.a: $(OBJS)
|
|
@RMCOMMAND@ libcpu.a
|
|
@MAKELIB@ $(OBJS)
|
|
$(RANLIB) libcpu.a
|
|
|
|
$(OBJS): $(BX_INCLUDES)
|
|
|
|
clean:
|
|
@RMCOMMAND@ *.o
|
|
@RMCOMMAND@ *.a
|
|
|
|
dist-clean: clean
|
|
@RMCOMMAND@ Makefile
|