From 26560c4103e210b182a2fa51274a0342ae81d7bc Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 14 May 2014 08:14:48 -0500 Subject: schedsim_smppriority: New simulator instance --- schedsim/configure.ac | 1 + schedsim/shell/Makefile.am | 2 + schedsim/shell/schedsim_smppriority/Makefile.am | 50 +++++++++++++++++++++++++ schedsim/shell/schedsim_smppriority/config.c | 18 +++++++++ 4 files changed, 71 insertions(+) create mode 100644 schedsim/shell/schedsim_smppriority/Makefile.am create mode 100644 schedsim/shell/schedsim_smppriority/config.c diff --git a/schedsim/configure.ac b/schedsim/configure.ac index 8012b2f..727b994 100644 --- a/schedsim/configure.ac +++ b/schedsim/configure.ac @@ -187,5 +187,6 @@ shell/Makefile shell/shared/Makefile shell/schedsim_priority/Makefile shell/schedsim_smpsimple/Makefile +shell/schedsim_smppriority/Makefile ]) AC_OUTPUT diff --git a/schedsim/shell/Makefile.am b/schedsim/shell/Makefile.am index 2e819bc..2df602d 100644 --- a/schedsim/shell/Makefile.am +++ b/schedsim/shell/Makefile.am @@ -6,6 +6,8 @@ DIST_SUBDIRS = shared schedsim_priority if HAS_SMP SUBDIRS += schedsim_smpsimple DIST_SUBDIRS += schedsim_smpsimple +SUBDIRS += schedsim_smppriority +DIST_SUBDIRS += schedsim_smppriority endif include $(top_srcdir)/../automake/subdirs.am diff --git a/schedsim/shell/schedsim_smppriority/Makefile.am b/schedsim/shell/schedsim_smppriority/Makefile.am new file mode 100644 index 0000000..28ec6cf --- /dev/null +++ b/schedsim/shell/schedsim_smppriority/Makefile.am @@ -0,0 +1,50 @@ +bin_PROGRAMS = schedsim_smppriority + +SOURCES = config.c +SOURCES += $(srcdir)/../schedsim_smpsimple/add_commands.c +SOURCES += $(srcdir)/../schedsim_smpsimple/main_current_cpu.c +SOURCES += $(srcdir)/../schedsim_smpsimple/main_dispatch.c +SOURCES += $(srcdir)/../schedsim_smpsimple/main_dump_all_cpus.c +SOURCES += $(srcdir)/../schedsim_smpsimple/main_dump_ready_tasks.c +SOURCES += $(srcdir)/../schedsim_smpsimple/printheir_executing.c +SOURCES += $(srcdir)/../schedsim_smpsimple/smp_stub.c +SOURCES += $(srcdir)/../schedsim_smpsimple/wrap_thread_dispatch.c +SOURCES += $(srcdir)/../schedsim_smpsimple/schedsim.cc +schedsim_smppriority_SOURCES = $(SOURCES) + +cpukitdir=@rtems_srcdir@/cpukit +schedsim_smppriority_CPPFLAGS = -I$(top_builddir)/score/include +schedsim_smppriority_CPPFLAGS += -I$(srcdir)/sched_cpu +schedsim_smppriority_CPPFLAGS += -I$(srcdir)/../../rtems +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/include +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/score/include +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/score/inline +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/rtems/include +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/rtems/inline +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/sapi/include +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/sapi/inline +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/libcsupport/include +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/libmisc/stringto +schedsim_smppriority_CPPFLAGS += -I$(srcdir)/../../rtems/sched_cpu +schedsim_smppriority_CPPFLAGS += -I$(srcdir)/../shared/include +schedsim_smppriority_CPPFLAGS += -I$(srcdir)/../shared +if HAS_PTHREADS +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/posix/include +schedsim_smppriority_CPPFLAGS += -I$(cpukitdir)/posix/inline +endif +## Ensure all linker provided symbols are available +schedsim_smppriority_LDFLAGS = +schedsim_smppriority_LDFLAGS += -Wl,--defsym=_TLS_Data_begin=0 +schedsim_smppriority_LDFLAGS += -Wl,--defsym=_TLS_BSS_end=0 +schedsim_smppriority_LDFLAGS += -Wl,--defsym=_TLS_Alignment=4 + +## Wrap _Thread_Dispatch so we can see context switches +schedsim_smppriority_LDFLAGS +=-Wl,--wrap=_Thread_Dispatch + +## schedsim_smppriority_LDADD +=-Wl,--start-group +schedsim_smppriority_LDADD = ../shared/libschedsim.a +schedsim_smppriority_LDADD += ../../rtems/librtems.a +schedsim_smppriority_LDADD += ../shared/libschedsim.a +## schedsim_smppriority_LDADD +=-Wl,--end-group + +include $(top_srcdir)/../automake/host.am diff --git a/schedsim/shell/schedsim_smppriority/config.c b/schedsim/shell/schedsim_smppriority/config.c new file mode 100644 index 0000000..04d00d2 --- /dev/null +++ b/schedsim/shell/schedsim_smppriority/config.c @@ -0,0 +1,18 @@ +/** + * @file + * + * Configuration file for Scheduler Simulator using Priority SMP + */ + +#include + +#define CONFIGURE_INIT +#define CONFIGURE_MAXIMUM_TASKS 1000 +#define CONFIGURE_MAXIMUM_SEMAPHORES 1000 + +#define CONFIGURE_SMP_APPLICATION +#define CONFIGURE_SMP_MAXIMUM_PROCESSORS 4 +#define CONFIGURE_SCHEDULER_PRIORITY_SMP + +#define CONFIGURE_DISABLE_BSP_SETTINGS +#include -- cgit v1.2.3