source:
rtems/contrib/crossrpms/patches/gdb-6.8-rtems4.10-20080912.diff
@
facca98
Last change on this file since facca98 was ebe7bf28, checked in by Ralf Corsepius <ralf.corsepius@…>, on 09/12/08 at 06:44:19 | |
---|---|
|
|
File size: 39.1 KB |
-
sim/common/aclocal.m4
diff -Naur gdb-6.8.orig/sim/common/aclocal.m4 gdb-6.8/sim/common/aclocal.m4
old new 18 18 # 19 19 # SIM_AC_OUTPUT 20 20 21 AC_DEFUN( SIM_AC_COMMON,21 AC_DEFUN([SIM_AC_COMMON], 22 22 [ 23 23 # autoconf.info says this should be called right after AC_INIT. 24 24 AC_CONFIG_HEADER(ifelse([$1],,config.h,[$1]):config.in) … … 245 245 dnl supported. 246 246 dnl ??? Until there is demonstrable value in doing something more complicated, 247 247 dnl let's not. 248 AC_DEFUN( SIM_AC_OPTION_ENVIRONMENT,248 AC_DEFUN([SIM_AC_OPTION_ENVIRONMENT], 249 249 [ 250 250 AC_ARG_ENABLE(sim-environment, 251 251 [ --enable-sim-environment=environment Specify mixed, user, virtual or operating environment.], … … 269 269 dnl Without this option all possible alignment restrictions are accommodated. 270 270 dnl arg[1] is hardwired target alignment 271 271 dnl arg[2] is default target alignment 272 AC_DEFUN( SIM_AC_OPTION_ALIGNMENT,272 AC_DEFUN([SIM_AC_OPTION_ALIGNMENT], 273 273 wire_alignment="[$1]" 274 274 default_alignment="[$2]" 275 275 [ … … 318 318 319 319 320 320 dnl Conditionally compile in assertion statements. 321 AC_DEFUN( SIM_AC_OPTION_ASSERT,321 AC_DEFUN([SIM_AC_OPTION_ASSERT], 322 322 [ 323 323 AC_ARG_ENABLE(sim-assert, 324 324 [ --enable-sim-assert Specify whether to perform random assertions.], … … 342 342 dnl arg[3] is the number of bits in an address 343 343 dnl arg[4] is the number of bits in an OpenFirmware cell. 344 344 dnl FIXME: this information should be obtained from bfd/archure 345 AC_DEFUN( SIM_AC_OPTION_BITSIZE,345 AC_DEFUN([SIM_AC_OPTION_BITSIZE], 346 346 wire_word_bitsize="[$1]" 347 347 wire_word_msb="[$2]" 348 348 wire_address_bitsize="[$3]" … … 408 408 dnl that support both big and little endian targets. 409 409 dnl arg[1] is hardwired target endianness. 410 410 dnl arg[2] is default target endianness. 411 AC_DEFUN( SIM_AC_OPTION_ENDIAN,411 AC_DEFUN([SIM_AC_OPTION_ENDIAN], 412 412 [ 413 413 wire_endian="[$1]" 414 414 default_endian="[$2]" … … 458 458 dnl --enable-sim-hostendian is for users of the simulator when 459 459 dnl they find that AC_C_BIGENDIAN does not function correctly 460 460 dnl (for instance in a canadian cross) 461 AC_DEFUN( SIM_AC_OPTION_HOSTENDIAN,461 AC_DEFUN([SIM_AC_OPTION_HOSTENDIAN], 462 462 [ 463 463 AC_ARG_ENABLE(sim-hostendian, 464 464 [ --enable-sim-hostendian=end Specify host byte endian orientation.], … … 490 490 dnl And optionally the bitsize of the floating point register. 491 491 dnl arg[1] specifies the presence (or absence) of floating point hardware 492 492 dnl arg[2] specifies the number of bits in a floating point register 493 AC_DEFUN( SIM_AC_OPTION_FLOAT,493 AC_DEFUN([SIM_AC_OPTION_FLOAT], 494 494 [ 495 495 default_sim_float="[$1]" 496 496 default_sim_float_bitsize="[$2]" … … 519 519 520 520 521 521 dnl The argument is the default cache size if none is specified. 522 AC_DEFUN( SIM_AC_OPTION_SCACHE,522 AC_DEFUN([SIM_AC_OPTION_SCACHE], 523 523 [ 524 524 default_sim_scache="ifelse([$1],,0,[$1])" 525 525 AC_ARG_ENABLE(sim-scache, … … 539 539 540 540 541 541 dnl The argument is the default model if none is specified. 542 AC_DEFUN( SIM_AC_OPTION_DEFAULT_MODEL,542 AC_DEFUN([SIM_AC_OPTION_DEFAULT_MODEL], 543 543 [ 544 544 default_sim_default_model="ifelse([$1],,0,[$1])" 545 545 AC_ARG_ENABLE(sim-default-model, … … 559 559 dnl arg[1] Enable sim-hw by default? ("yes" or "no") 560 560 dnl arg[2] is a space separated list of devices that override the defaults 561 561 dnl arg[3] is a space separated list of extra target specific devices. 562 AC_DEFUN( SIM_AC_OPTION_HARDWARE,562 AC_DEFUN([SIM_AC_OPTION_HARDWARE], 563 563 [ 564 564 if test x"[$1]" = x"yes"; then 565 565 sim_hw_p=yes … … 621 621 dnl performance by inlining functions. 622 622 dnl Guarantee that unconfigured simulators do not do any inlining 623 623 sim_inline="-DDEFAULT_INLINE=0" 624 AC_DEFUN( SIM_AC_OPTION_INLINE,624 AC_DEFUN([SIM_AC_OPTION_INLINE], 625 625 [ 626 626 default_sim_inline="ifelse([$1],,,-DDEFAULT_INLINE=[$1])" 627 627 AC_ARG_ENABLE(sim-inline, … … 666 666 AC_SUBST(sim_inline) 667 667 668 668 669 AC_DEFUN( SIM_AC_OPTION_PACKAGES,669 AC_DEFUN([SIM_AC_OPTION_PACKAGES], 670 670 [ 671 671 AC_ARG_ENABLE(sim-packages, 672 672 [ --enable-sim-packages=list Specify the packages to be included in the build.], … … 692 692 AC_SUBST(sim_packages) 693 693 694 694 695 AC_DEFUN( SIM_AC_OPTION_REGPARM,695 AC_DEFUN([SIM_AC_OPTION_REGPARM], 696 696 [ 697 697 AC_ARG_ENABLE(sim-regparm, 698 698 [ --enable-sim-regparm=nr-parm Pass parameters in registers instead of on the stack - x86/GCC specific.], … … 709 709 AC_SUBST(sim_regparm) 710 710 711 711 712 AC_DEFUN( SIM_AC_OPTION_RESERVED_BITS,712 AC_DEFUN([SIM_AC_OPTION_RESERVED_BITS], 713 713 [ 714 714 default_sim_reserved_bits="ifelse([$1],,1,[$1])" 715 715 AC_ARG_ENABLE(sim-reserved-bits, … … 726 726 AC_SUBST(sim_reserved_bits) 727 727 728 728 729 AC_DEFUN( SIM_AC_OPTION_SMP,729 AC_DEFUN([SIM_AC_OPTION_SMP], 730 730 [ 731 731 default_sim_smp="ifelse([$1],,5,[$1])" 732 732 AC_ARG_ENABLE(sim-smp, … … 746 746 AC_SUBST(sim_smp) 747 747 748 748 749 AC_DEFUN( SIM_AC_OPTION_STDCALL,749 AC_DEFUN([SIM_AC_OPTION_STDCALL], 750 750 [ 751 751 AC_ARG_ENABLE(sim-stdcall, 752 752 [ --enable-sim-stdcall=type Use an alternative function call/return mechanism - x86/GCC specific.], … … 763 763 AC_SUBST(sim_stdcall) 764 764 765 765 766 AC_DEFUN( SIM_AC_OPTION_XOR_ENDIAN,766 AC_DEFUN([SIM_AC_OPTION_XOR_ENDIAN], 767 767 [ 768 768 default_sim_xor_endian="ifelse([$1],,8,[$1])" 769 769 AC_ARG_ENABLE(sim-xor-endian, … … 782 782 783 783 dnl --enable-build-warnings is for developers of the simulator. 784 784 dnl it enables extra GCC specific warnings. 785 AC_DEFUN( SIM_AC_OPTION_WARNINGS,785 AC_DEFUN([SIM_AC_OPTION_WARNINGS], 786 786 [ 787 787 # NOTE: Don't add -Wall or -Wunused, they both include 788 788 # -Wunused-parameter which reports bogus warnings. … … 866 866 dnl one afterwards. The two pieces of the common fragment are inserted into 867 867 dnl the target's fragment at the appropriate points. 868 868 869 AC_DEFUN( SIM_AC_OUTPUT,869 AC_DEFUN([SIM_AC_OUTPUT], 870 870 [ 871 871 AC_LINK_FILES($sim_link_files, $sim_link_links) 872 872 dnl Make @cgen_breaks@ non-null only if the sim uses CGEN. … … 895 895 sinclude(../../config/gettext-sister.m4) 896 896 897 897 dnl --enable-cgen-maint support 898 AC_DEFUN( SIM_AC_OPTION_CGEN_MAINT,898 AC_DEFUN([SIM_AC_OPTION_CGEN_MAINT], 899 899 [ 900 900 cgen_maint=no 901 901 dnl Default is to use one in build tree. -
sim/erc32/configure
diff -Naur gdb-6.8.orig/sim/erc32/configure gdb-6.8/sim/erc32/configure
old new 309 309 # include <unistd.h> 310 310 #endif" 311 311 312 ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS sim_environment sim_alignment sim_assert sim_bitsize sim_endian sim_hostendian sim_float sim_scache sim_default_model sim_hw_cflags sim_hw_objs sim_hw sim_inline sim_packages sim_regparm sim_reserved_bits sim_smp sim_stdcall sim_xor_endian WARN_CFLAGS WERROR_CFLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC_FOR_BUILD HDEFINES AR RANLIB ac_ct_RANLIB USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT CPP EGREP MAINT sim_bswap sim_cflags sim_debug sim_stdio sim_trace sim_profile TERMCAP READLINEcgen_breaks LIBOBJS LTLIBOBJS'312 ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS sim_environment sim_alignment sim_assert sim_bitsize sim_endian sim_hostendian sim_float sim_scache sim_default_model sim_hw_cflags sim_hw_objs sim_hw sim_inline sim_packages sim_regparm sim_reserved_bits sim_smp sim_stdcall sim_xor_endian WARN_CFLAGS WERROR_CFLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC_FOR_BUILD HDEFINES AR RANLIB ac_ct_RANLIB USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT CPP EGREP MAINT sim_bswap sim_cflags sim_debug sim_stdio sim_trace sim_profile READLINE READLINE_DEPS READLINE_CFLAGS cgen_breaks LIBOBJS LTLIBOBJS' 313 313 ac_subst_files='' 314 314 315 315 # Initialize some variables set by options. … … 858 858 --enable-sim-trace=opts Enable tracing flags 859 859 --enable-sim-profile=opts Enable profiling flags 860 860 861 Optional Packages: 862 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] 863 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) 864 --with-system-readline use installed readline library 865 861 866 Some influential environment variables: 862 867 CC C compiler command 863 868 CFLAGS C compiler flags … … 4493 4498 done 4494 4499 4495 4500 4496 # In the Cygwin environment, we need some additional flags.4497 echo "$as_me:$LINENO: checking for cygwin" >&54498 echo $ECHO_N "checking for cygwin... $ECHO_C" >&64499 if test "${sim_cv_os_cygwin+set}" = set; then4500 echo $ECHO_N "(cached) $ECHO_C" >&64501 else4502 cat >conftest.$ac_ext <<_ACEOF4503 /* confdefs.h. */4504 _ACEOF4505 cat confdefs.h >>conftest.$ac_ext4506 cat >>conftest.$ac_ext <<_ACEOF4507 /* end confdefs.h. */4508 4501 4509 #ifdef __CYGWIN__ 4510 lose 4511 #endif 4512 _ACEOF 4513 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | 4514 $EGREP "lose" >/dev/null 2>&1; then 4515 sim_cv_os_cygwin=yes 4516 else 4517 sim_cv_os_cygwin=no 4518 fi 4519 rm -f conftest* 4502 # Check whether --with-system-readline or --without-system-readline was given. 4503 if test "${with_system_readline+set}" = set; then 4504 withval="$with_system_readline" 4520 4505 4521 fi 4522 echo "$as_me:$LINENO: result: $sim_cv_os_cygwin" >&5 4523 echo "${ECHO_T}$sim_cv_os_cygwin" >&6 4506 fi; 4524 4507 4525 if test x$sim_cv_os_cygwin = xyes; then 4526 TERMCAP='`if test -r ../../libtermcap/libtermcap.a; then echo ../../libtermcap/libtermcap.a; else echo -ltermcap; fi` -luser32' 4527 else 4528 echo "$as_me:$LINENO: checking for main in -ltermcap" >&5 4529 echo $ECHO_N "checking for main in -ltermcap... $ECHO_C" >&6 4530 if test "${ac_cv_lib_termcap_main+set}" = set; then 4531 echo $ECHO_N "(cached) $ECHO_C" >&6 4532 else 4533 ac_check_lib_save_LIBS=$LIBS 4534 LIBS="-ltermcap $LIBS" 4535 cat >conftest.$ac_ext <<_ACEOF 4508 if test "$with_system_readline" = yes; then 4509 echo "$as_me:$LINENO: checking for readline" >&5 4510 echo $ECHO_N "checking for readline... $ECHO_C" >&6 4511 save_LIBS="$LIBS" 4512 LIBS="-lreadline $save_LIBS" 4513 cat >conftest.$ac_ext <<_ACEOF 4536 4514 /* confdefs.h. */ 4537 4515 _ACEOF 4538 4516 cat confdefs.h >>conftest.$ac_ext 4539 4517 cat >>conftest.$ac_ext <<_ACEOF 4540 4518 /* end confdefs.h. */ 4541 4519 4542 4520 /* Override any gcc2 internal prototype to avoid an error. */ 4521 #ifdef __cplusplus 4522 extern "C" 4523 #endif 4524 /* We use char because int might match the return type of a gcc2 4525 builtin and then its argument prototype would still apply. */ 4526 char add_history (); 4543 4527 int 4544 4528 main () 4545 4529 { 4546 main();4530 add_history (); 4547 4531 ; 4548 4532 return 0; 4549 4533 } … … 4570 4554 ac_status=$? 4571 4555 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4572 4556 (exit $ac_status); }; }; then 4573 ac_cv_lib_termcap_main=yes4557 READLINE=-lreadline 4574 4558 else 4575 4559 echo "$as_me: failed program was:" >&5 4576 4560 sed 's/^/| /' conftest.$ac_ext >&5 4577 4561 4578 ac_cv_lib_termcap_main=no 4579 fi 4580 rm -f conftest.err conftest.$ac_objext \ 4581 conftest$ac_exeext conftest.$ac_ext 4582 LIBS=$ac_check_lib_save_LIBS 4583 fi 4584 echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_main" >&5 4585 echo "${ECHO_T}$ac_cv_lib_termcap_main" >&6 4586 if test $ac_cv_lib_termcap_main = yes; then 4587 TERMCAP=-ltermcap 4588 else 4589 TERMCAP="" 4590 fi 4591 4592 fi 4593 4594 4595 # We prefer the in-tree readline. Top-level dependencies make sure 4596 # src/readline (if it's there) is configured before src/sim. 4597 if test -r ../../readline/Makefile; then 4598 READLINE=../../readline/libreadline.a 4599 else 4600 echo "$as_me:$LINENO: checking for readline in -lreadline" >&5 4601 echo $ECHO_N "checking for readline in -lreadline... $ECHO_C" >&6 4602 if test "${ac_cv_lib_readline_readline+set}" = set; then 4603 echo $ECHO_N "(cached) $ECHO_C" >&6 4604 else 4605 ac_check_lib_save_LIBS=$LIBS 4606 LIBS="-lreadline $TERMCAP $LIBS" 4607 cat >conftest.$ac_ext <<_ACEOF 4562 LIBS="-lreadline -lncurses $save_LIBS" 4563 cat >conftest.$ac_ext <<_ACEOF 4608 4564 /* confdefs.h. */ 4609 4565 _ACEOF 4610 4566 cat confdefs.h >>conftest.$ac_ext … … 4617 4573 #endif 4618 4574 /* We use char because int might match the return type of a gcc2 4619 4575 builtin and then its argument prototype would still apply. */ 4620 char readline();4576 char add_history (); 4621 4577 int 4622 4578 main () 4623 4579 { 4624 readline();4580 add_history (); 4625 4581 ; 4626 4582 return 0; 4627 4583 } … … 4648 4604 ac_status=$? 4649 4605 echo "$as_me:$LINENO: \$? = $ac_status" >&5 4650 4606 (exit $ac_status); }; }; then 4651 ac_cv_lib_readline_readline=yes4607 READLINE="-lreadline -lncurses" 4652 4608 else 4653 4609 echo "$as_me: failed program was:" >&5 4654 4610 sed 's/^/| /' conftest.$ac_ext >&5 4655 4611 4656 ac_cv_lib_readline_readline=no 4612 { { echo "$as_me:$LINENO: error: unable to detect readline" >&5 4613 echo "$as_me: error: unable to detect readline" >&2;} 4614 { (exit 1); exit 1; }; } 4657 4615 fi 4658 4616 rm -f conftest.err conftest.$ac_objext \ 4659 4617 conftest$ac_exeext conftest.$ac_ext 4660 LIBS=$ac_check_lib_save_LIBS 4618 4661 4619 fi 4662 echo "$as_me:$LINENO: result: $ac_cv_lib_readline_readline" >&5 4663 echo "${ECHO_T}$ac_cv_lib_readline_readline" >&6 4664 if test $ac_cv_lib_readline_readline = yes; then 4665 READLINE=-lreadline 4666 else 4667 { { echo "$as_me:$LINENO: error: the required \"readline\" library is missing" >&5 4668 echo "$as_me: error: the required \"readline\" library is missing" >&2;} 4669 { (exit 1); exit 1; }; } 4620 rm -f conftest.err conftest.$ac_objext \ 4621 conftest$ac_exeext conftest.$ac_ext 4622 LIBS="$save_LIBS" 4623 echo "$as_me:$LINENO: result: $READLINE" >&5 4624 echo "${ECHO_T}$READLINE" >&6 4625 READLINE_DEPS= 4626 READLINE_CFLAGS= 4627 else 4628 READLINE='$(READLINE_DIR)/libreadline.a' 4629 READLINE_DEPS='$(READLINE)' 4630 READLINE_CFLAGS='-I$(READLINE_SRC)/..' 4670 4631 fi 4671 4632 4672 fi 4633 4634 4673 4635 4674 4636 4675 4637 ac_sources="$sim_link_files" … … 5389 5351 s,@sim_stdio@,$sim_stdio,;t t 5390 5352 s,@sim_trace@,$sim_trace,;t t 5391 5353 s,@sim_profile@,$sim_profile,;t t 5392 s,@TERMCAP@,$TERMCAP,;t t5393 5354 s,@READLINE@,$READLINE,;t t 5355 s,@READLINE_DEPS@,$READLINE_DEPS,;t t 5356 s,@READLINE_CFLAGS@,$READLINE_CFLAGS,;t t 5394 5357 s,@cgen_breaks@,$cgen_breaks,;t t 5395 5358 s,@LIBOBJS@,$LIBOBJS,;t t 5396 5359 s,@LTLIBOBJS@,$LTLIBOBJS,;t t -
sim/erc32/configure.ac
diff -Naur gdb-6.8.orig/sim/erc32/configure.ac gdb-6.8/sim/erc32/configure.ac
old new 11 11 12 12 AC_CHECK_HEADERS(stdlib.h) 13 13 14 # In the Cygwin environment, we need some additional flags. 15 AC_CACHE_CHECK([for cygwin], sim_cv_os_cygwin, 16 [AC_EGREP_CPP(lose, [ 17 #ifdef __CYGWIN__ 18 lose 19 #endif],[sim_cv_os_cygwin=yes],[sim_cv_os_cygwin=no])]) 14 AC_ARG_WITH([system-readline], 15 [AS_HELP_STRING([--with-system-readline], 16 [use installed readline library])]) 20 17 21 if test x$sim_cv_os_cygwin = xyes; then 22 TERMCAP='`if test -r ../../libtermcap/libtermcap.a; then echo ../../libtermcap/libtermcap.a; else echo -ltermcap; fi` -luser32' 18 if test "$with_system_readline" = yes; then 19 AC_MSG_CHECKING([for readline]) 20 save_LIBS="$LIBS" 21 LIBS="-lreadline $save_LIBS" 22 AC_LINK_IFELSE([AC_LANG_CALL([], 23 [add_history])], [READLINE=-lreadline], 24 [ LIBS="-lreadline -lncurses $save_LIBS" 25 AC_LINK_IFELSE([AC_LANG_CALL([], 26 [add_history])], [READLINE="-lreadline -lncurses"], 27 [AC_MSG_ERROR([unable to detect readline])]) 28 ]) 29 LIBS="$save_LIBS" 30 AC_MSG_RESULT($READLINE) 31 READLINE_DEPS= 32 READLINE_CFLAGS= 23 33 else 24 AC_CHECK_LIB(termcap, main, TERMCAP=-ltermcap, TERMCAP="") 25 fi 26 AC_SUBST(TERMCAP) 27 28 # We prefer the in-tree readline. Top-level dependencies make sure 29 # src/readline (if it's there) is configured before src/sim. 30 if test -r ../../readline/Makefile; then 31 READLINE=../../readline/libreadline.a 32 else 33 AC_CHECK_LIB(readline, readline, READLINE=-lreadline, 34 AC_ERROR([the required "readline" library is missing]), $TERMCAP) 34 READLINE='$(READLINE_DIR)/libreadline.a' 35 READLINE_DEPS='$(READLINE)' 36 READLINE_CFLAGS='-I$(READLINE_SRC)/..' 35 37 fi 36 38 AC_SUBST(READLINE) 39 AC_SUBST(READLINE_DEPS) 40 AC_SUBST(READLINE_CFLAGS) 41 37 42 SIM_AC_OUTPUT -
sim/erc32/erc32.c
diff -Naur gdb-6.8.orig/sim/erc32/erc32.c gdb-6.8/sim/erc32/erc32.c
old new 24 24 25 25 #include <sys/types.h> 26 26 #include <stdio.h> 27 #include <string.h> 27 28 #include <termios.h> 28 29 #include <sys/fcntl.h> 29 30 #include <sys/file.h> … … 413 414 if (rom8) mec_memcfg &= ~0x20000; 414 415 else mec_memcfg |= 0x20000; 415 416 416 mem_ramsz = ( 256* 1024) << ((mec_memcfg >> 10) & 7);417 mem_ramsz = (512 * 1024) << ((mec_memcfg >> 10) & 7); 417 418 mem_romsz = (128 * 1024) << ((mec_memcfg >> 18) & 7); 418 419 419 420 if (sparclite_board) { … … 1659 1660 errmec = 0; 1660 1661 return(1); 1661 1662 } 1662 #endif ;1663 #endif 1663 1664 1664 1665 if ((addr >= mem_ramstart) && (addr < (mem_ramstart + mem_ramsz))) { 1665 1666 fetch_bytes (asi, &ramb[addr & mem_rammask], data, sz); … … 1736 1737 errmec = 0; 1737 1738 return(1); 1738 1739 } 1739 #endif ;1740 #endif 1740 1741 1741 1742 if ((addr >= mem_ramstart) && (addr < (mem_ramstart + mem_ramsz))) { 1742 1743 if (mem_accprot) { -
sim/erc32/exec.c
diff -Naur gdb-6.8.orig/sim/erc32/exec.c gdb-6.8/sim/erc32/exec.c
old new 1713 1713 sregs->fdp[rs2 | 1] = sregs->fs[rs2 & ~1]; 1714 1714 sregs->fdp[rs2 & ~1] = sregs->fs[rs2 | 1]; 1715 1715 default: 1716 ;1716 break; 1717 1717 } 1718 1718 #endif 1719 1719 … … 1886 1886 sregs->fs[rd & ~1] = sregs->fdp[rd | 1]; 1887 1887 sregs->fs[rd | 1] = sregs->fdp[rd & ~1]; 1888 1888 default: 1889 ;1889 break; 1890 1890 } 1891 1891 #endif 1892 1892 if (sregs->fpstate == FP_EXC_PE) { -
sim/erc32/Makefile.in
diff -Naur gdb-6.8.orig/sim/erc32/Makefile.in gdb-6.8/sim/erc32/Makefile.in
old new 18 18 19 19 ## COMMON_PRE_CONFIG_FRAG 20 20 21 TERMCAP_LIB = @TERMCAP@ 21 # TERMCAP_LIB = -lncurses 22 22 READLINE_LIB = @READLINE@ 23 23 24 24 SIM_OBJS = exec.o erc32.o func.o help.o float.o interf.o 25 25 SIM_EXTRA_LIBS = $(READLINE_LIB) $(TERMCAP_LIB) -lm 26 SIM_EXTRA_ALL = sis 26 SIM_EXTRA_ALL = sis$(EXEEXT) 27 27 SIM_EXTRA_INSTALL = install-sis 28 28 SIM_EXTRA_CLEAN = clean-sis 29 29 … … 37 37 # `sis' doesn't need interf.o. 38 38 SIS_OFILES = exec.o erc32.o func.o help.o float.o 39 39 40 sis : sis.o $(SIS_OFILES) $(COMMON_OBJS) $(LIBDEPS)41 $(CC) $(ALL_CFLAGS) -o sis \40 sis$(EXEEXT): sis.o $(SIS_OFILES) $(COMMON_OBJS) $(LIBDEPS) 41 $(CC) $(ALL_CFLAGS) -o sis$(EXEEXT) \ 42 42 sis.o $(SIS_OFILES) $(COMMON_OBJS) $(EXTRA_LIBS) 43 43 44 44 # FIXME: This computes the build host's endianness, doesn't it? … … 51 51 52 52 # Copy the files into directories where they will be run. 53 53 install-sis: installdirs 54 n=`echo sis | sed '$(program_transform_name)'`; \55 $(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n $(EXEEXT)54 n=`echo sis$(EXEEXT) | sed '$(program_transform_name)'`; \ 55 $(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n 56 56 57 57 clean-sis: 58 rm -f sis end end.h58 rm -f sis$(EXEEXT) end end.h 59 59 60 60 configure: 61 61 @echo "Rebuilding configure..." -
sim/ppc/configure.ac
diff -Naur gdb-6.8.orig/sim/ppc/configure.ac gdb-6.8/sim/ppc/configure.ac
old new 209 209 esac 210 210 ])dnl 211 211 212 AC_CACHE_CHECK([if union semun defined], 213 ac_cv_HAS_UNION_SEMUN, 214 [AC_TRY_COMPILE([ 215 #include <sys/types.h> 216 #include <sys/ipc.h> 217 #include <sys/sem.h>], 218 [union semun arg ;], 219 [ac_cv_has_union_semun="yes"], 220 [ac_cv_has_union_semun="no"]) 221 AC_MSG_RESULT($ac_cv_has_union_semun) 222 ]) 223 224 225 if test "$ac_cv_has_union_semun" = "yes"; then 226 AC_CACHE_CHECK(whether System V semaphores are supported, 227 ac_cv_sysv_sem, 228 [ 229 AC_TRY_RUN( 230 [ 231 #include <sys/types.h> 232 #include <sys/ipc.h> 233 #include <sys/sem.h> 234 int main () { 235 union semun arg ; 236 237 int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400); 238 if (id == -1) 239 exit(1); 240 arg.val = 0; /* avoid implicit type cast to union */ 241 if (semctl(id, 0, IPC_RMID, arg) == -1) 242 exit(1); 243 exit(0); 244 } 245 ], 246 ac_cv_sysv_sem="yes", ac_cv_sysv_sem="no", :) 247 ]) 248 else # semun is not defined 249 AC_CACHE_CHECK(whether System V semaphores are supported, 250 ac_cv_sysv_sem, 251 [ 252 AC_TRY_RUN( 253 [ 254 #include <sys/types.h> 255 #include <sys/ipc.h> 256 #include <sys/sem.h> 257 union semun { 258 int val; 259 struct semid_ds *buf; 260 ushort *array; 261 }; 262 int main () { 263 union semun arg ; 264 265 int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400); 266 if (id == -1) 267 exit(1); 268 arg.val = 0; /* avoid implicit type cast to union */ 269 if (semctl(id, 0, IPC_RMID, arg) == -1) 270 exit(1); 271 exit(0); 272 } 273 ], 274 ac_cv_sysv_sem="yes", ac_cv_sysv_sem="no", :) 275 ]) 276 fi 277 278 AC_CACHE_CHECK(whether System V shared memory is supported, 279 ac_cv_sysv_shm, 280 [ 281 AC_TRY_RUN([ 282 #include <sys/types.h> 283 #include <sys/ipc.h> 284 #include <sys/shm.h> 285 int main () { 286 int id=shmget(IPC_PRIVATE,1,IPC_CREAT|0400); 287 if (id == -1) 288 exit(1); 289 if (shmctl(id, IPC_RMID, 0) == -1) 290 exit(1); 291 exit(0); 292 } 293 ], 294 ac_cv_sysv_shm="yes", ac_cv_sysv_shm="no", :) 295 ]) 296 297 if test x"$ac_cv_sysv_shm" = x"yes" -a x"$ac_cv_sysv_sem" = x"yes" ; then 298 sim_sysv_ipc_hw=",sem,shm"; 299 else 300 sim_sysv_ipc_hw=""; 301 fi 302 303 if test x"$ac_cv_has_union_semun" = x"yes" -a x"$ac_cv_sysv_sem" = x"yes" ; then 304 sim_hwflags="-DHAS_UNION_SEMUN"; 305 fi 306 212 307 213 308 AC_ARG_ENABLE(sim-hardware, 214 309 [ --enable-sim-hardware=list Specify the hardware to be included in the build.], 215 [hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide "310 [hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide${sim_sysv_ipc_hw}" 216 311 case "${enableval}" in 217 312 yes) ;; 218 313 no) AC_MSG_ERROR("List of hardware must be specified for --enable-sim-hardware"); hardware="";; … … 224 319 sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'` 225 320 if test x"$silent" != x"yes" && test x"$hardware" != x""; then 226 321 echo "Setting hardware to $sim_hw_src, $sim_hw_obj" 227 fi],[hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide "322 fi],[hardware="cpu,memory,nvram,iobus,htab,disk,trace,register,vm,init,core,pal,com,eeprom,opic,glue,phb,ide${sim_sysv_ipc_hw}" 228 323 sim_hw_src=`echo $hardware | sed -e 's/,/.c hw_/g' -e 's/^/hw_/' -e s'/$/.c/'` 229 324 sim_hw_obj=`echo $sim_hw_src | sed -e 's/\.c/.o/g'` 230 325 if test x"$silent" != x"yes"; then 231 326 echo "Setting hardware to $sim_hw_src, $sim_hw_obj" 232 327 fi])dnl 233 328 234 235 329 AC_ARG_ENABLE(sim-hostbitsize, 236 330 [ --enable-sim-hostbitsize=32|64 Specify host bitsize (32 or 64).], 237 331 [case "${enableval}" in -
sim/ppc/debug.c
diff -Naur gdb-6.8.orig/sim/ppc/debug.c gdb-6.8/sim/ppc/debug.c
old new 70 70 { trace_pass_device, "pass-device" }, 71 71 { trace_phb_device, "phb-device" }, 72 72 { trace_register_device, "register-device", "Device initializing registers" }, 73 { trace_sem_device, "sem-device" }, 74 { trace_shm_device, "shm-device" }, 73 75 { trace_stack_device, "stack-device" }, 74 76 { trace_vm_device, "vm-device" }, 75 77 /* packages */ -
sim/ppc/debug.h
diff -Naur gdb-6.8.orig/sim/ppc/debug.h gdb-6.8/sim/ppc/debug.h
old new 51 51 trace_pal_device, 52 52 trace_pass_device, 53 53 trace_phb_device, 54 trace_sem_device, 55 trace_shm_device, 54 56 trace_stack_device, 55 57 trace_register_device, 56 58 trace_vm_device, -
sim/ppc/hw_sem.c
diff -Naur gdb-6.8.orig/sim/ppc/hw_sem.c gdb-6.8/sim/ppc/hw_sem.c
old new 1 /* This file is part of the program psim. 2 3 Copyright (C) 1997,2008, Joel Sherrill <joel@OARcorp.com> 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 19 */ 20 21 22 #ifndef _HW_SEM_C_ 23 #define _HW_SEM_C_ 24 25 #include "device_table.h" 26 27 #ifdef HAVE_STRING_H 28 #include <string.h> 29 #else 30 #ifdef HAVE_STRINGS_H 31 #include <strings.h> 32 #endif 33 #endif 34 35 #include <sys/ipc.h> 36 #include <sys/sem.h> 37 38 #include <errno.h> 39 40 /* DEVICE 41 42 43 sem - provide access to a unix semaphore 44 45 46 DESCRIPTION 47 48 49 This device implements an interface to a unix semaphore. 50 51 52 PROPERTIES 53 54 55 reg = <address> <size> (required) 56 57 Determine where the memory lives in the parents address space. 58 59 key = <integer> (required) 60 61 This is the key of the unix semaphore. 62 63 EXAMPLES 64 65 66 Enable tracing of the sem: 67 68 | bash$ psim -t sem-device \ 69 70 71 Configure a UNIX semaphore using key 0x12345678 mapped into psim 72 address space at 0xfff00000: 73 74 | -o '/sem@0xfff00000/reg 0xfff00000 0x80000' \ 75 | -o '/sem@0xfff00000/key 0x12345678' \ 76 77 sim/ppc/run -o '/#address-cells 1' \ 78 -o '/sem@0xc0000000/reg 0xc0000000 0x80000' \ 79 -o '/sem@0xc0000000/key 0x12345678' ../psim-hello/hello 80 81 REGISTERS 82 83 offset 0 - lock count 84 offset 4 - lock operation 85 offset 8 - unlock operation 86 87 All reads return the current or resulting count. 88 89 BUGS 90 91 None known. 92 93 */ 94 95 typedef struct _hw_sem_device { 96 unsigned_word physical_address; 97 key_t key; 98 int id; 99 int initial; 100 int count; 101 } hw_sem_device; 102 103 static void 104 hw_sem_init_data(device *me) 105 { 106 hw_sem_device *sem = (hw_sem_device*)device_data(me); 107 const device_unit *d; 108 int status; 109 #if !HAS_UNION_SEMUN 110 union semun { 111 int val; 112 struct semid_ds *buf; 113 unsigned short int *array; 114 #if defined(__linux__) 115 struct seminfo *__buf; 116 #endif 117 } ; 118 #endif 119 union semun help; 120 121 /* initialize the properties of the sem */ 122 123 if (device_find_property(me, "key") == NULL) 124 error("sem_init_data() required key property is missing\n"); 125 126 if (device_find_property(me, "value") == NULL) 127 error("sem_init_data() required value property is missing\n"); 128 129 sem->key = (key_t) device_find_integer_property(me, "key"); 130 DTRACE(sem, ("semaphore key (%d)\n", sem->key) ); 131 132 sem->initial = (int) device_find_integer_property(me, "value"); 133 DTRACE(sem, ("semaphore initial value (%d)\n", sem->initial) ); 134 135 d = device_unit_address(me); 136 sem->physical_address = d->cells[ d->nr_cells-1 ]; 137 DTRACE(sem, ("semaphore physical_address=0x%x\n", sem->physical_address)); 138 139 /* Now to initialize the semaphore */ 140 141 if ( sem->initial != -1 ) { 142 143 sem->id = semget(sem->key, 1, IPC_CREAT | 0660); 144 if (sem->id == -1) 145 error("hw_sem_init_data() semget failed\n"); 146 147 help.val = sem->initial; 148 status = semctl( sem->id, 0, SETVAL, help ); 149 if (status == -1) 150 error("hw_sem_init_data() semctl -- set value failed\n"); 151 152 } else { 153 sem->id = semget(sem->key, 1, 0660); 154 if (sem->id == -1) 155 error("hw_sem_init_data() semget failed\n"); 156 } 157 158 sem->count = semctl( sem->id, 0, GETVAL, help ); 159 if (sem->count == -1) 160 error("hw_sem_init_data() semctl -- get value failed\n"); 161 DTRACE(sem, ("semaphore OS value (%d)\n", sem->count) ); 162 163 if (sizeof(int) != 4) 164 error("hw_sem_init_data() typing problem\n"); 165 } 166 167 static void 168 hw_sem_attach_address_callback(device *me, 169 attach_type attach, 170 int space, 171 unsigned_word addr, 172 unsigned nr_bytes, 173 access_type access, 174 device *client) /*callback/default*/ 175 { 176 hw_sem_device *sem = (hw_sem_device*)device_data(me); 177 178 if (space != 0) 179 error("sem_attach_address_callback() invalid address space\n"); 180 181 if (nr_bytes == 12) 182 error("sem_attach_address_callback() invalid size\n"); 183 184 sem->physical_address = addr; 185 DTRACE(sem, ("semaphore physical_address=0x%x\n", addr)); 186 } 187 188 static unsigned 189 hw_sem_io_read_buffer(device *me, 190 void *dest, 191 int space, 192 unsigned_word addr, 193 unsigned nr_bytes, 194 cpu *processor, 195 unsigned_word cia) 196 { 197 hw_sem_device *sem = (hw_sem_device*)device_data(me); 198 struct sembuf sb; 199 int status; 200 unsigned32 u32; 201 #if !HAS_UNION_SEMUN 202 union semun { 203 int val; 204 struct semid_ds *buf; 205 unsigned short int *array; 206 #if defined(__linux__) 207 struct seminfo *__buf; 208 #endif 209 } ; 210 #endif 211 union semun help; 212 213 /* do we need to worry about out of range addresses? */ 214 215 DTRACE(sem, ("semaphore read addr=0x%x length=%d\n", addr, nr_bytes)); 216 217 if (!(addr >= sem->physical_address && addr <= sem->physical_address + 11)) 218 error("hw_sem_io_read_buffer() invalid address - out of range\n"); 219 220 if ((addr % 4) != 0) 221 error("hw_sem_io_read_buffer() invalid address - alignment\n"); 222 223 if (nr_bytes != 4) 224 error("hw_sem_io_read_buffer() invalid length\n"); 225 226 switch ( (addr - sem->physical_address) / 4 ) { 227 228 case 0: /* OBTAIN CURRENT VALUE */ 229 break; 230 231 case 1: /* LOCK */ 232 sb.sem_num = 0; 233 sb.sem_op = -1; 234 sb.sem_flg = 0; 235 236 status = semop(sem->id, &sb, 1); 237 if (status == -1) { 238 perror( "hw_sem.c: lock" ); 239 error("hw_sem_io_read_buffer() sem lock\n"); 240 } 241 242 DTRACE(sem, ("semaphore lock %d\n", sem->count)); 243 break; 244 245 case 2: /* UNLOCK */ 246 sb.sem_num = 0; 247 sb.sem_op = 1; 248 sb.sem_flg = 0; 249 250 status = semop(sem->id, &sb, 1); 251 if (status == -1) { 252 perror( "hw_sem.c: unlock" ); 253 error("hw_sem_io_read_buffer() sem unlock\n"); 254 } 255 DTRACE(sem, ("semaphore unlock %d\n", sem->count)); 256 break; 257 258 default: 259 error("hw_sem_io_read_buffer() invalid address - unknown error\n"); 260 break; 261 } 262 263 /* assume target is big endian */ 264 u32 = H2T_4(semctl( sem->id, 0, GETVAL, help )); 265 266 DTRACE(sem, ("semaphore OS value (%d)\n", u32) ); 267 if (u32 == 0xffffffff) { 268 perror( "hw_sem.c: getval" ); 269 error("hw_sem_io_read_buffer() semctl -- get value failed\n"); 270 } 271 272 memcpy(dest, &u32, nr_bytes); 273 return nr_bytes; 274 275 } 276 277 static device_callbacks const hw_sem_callbacks = { 278 { generic_device_init_address, hw_sem_init_data }, 279 { hw_sem_attach_address_callback, }, /* address */ 280 { hw_sem_io_read_buffer, NULL }, /* IO */ 281 { NULL, }, /* DMA */ 282 { NULL, }, /* interrupt */ 283 { NULL, }, /* unit */ 284 NULL, 285 }; 286 287 static void * 288 hw_sem_create(const char *name, 289 const device_unit *unit_address, 290 const char *args) 291 { 292 hw_sem_device *sem = ZALLOC(hw_sem_device); 293 return sem; 294 } 295 296 const device_descriptor hw_sem_device_descriptor[] = { 297 { "sem", hw_sem_create, &hw_sem_callbacks }, 298 { NULL }, 299 }; 300 301 #endif /* _HW_SEM_C_ */ -
sim/ppc/hw_shm.c
diff -Naur gdb-6.8.orig/sim/ppc/hw_shm.c gdb-6.8/sim/ppc/hw_shm.c
old new 1 /* This file is part of the program psim. 2 3 Copyright (C) 1997,2008, Joel Sherrill <joel@OARcorp.com> 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 19 */ 20 21 22 #ifndef _HW_SHM_C_ 23 #define _HW_SHM_C_ 24 25 #include "device_table.h" 26 27 #ifdef HAVE_STRING_H 28 #include <string.h> 29 #else 30 #ifdef HAVE_STRINGS_H 31 #include <strings.h> 32 #endif 33 #endif 34 35 #include <sys/ipc.h> 36 #include <sys/shm.h> 37 38 39 /* DEVICE 40 41 42 shm - map unix shared memory into psim address space 43 44 45 DESCRIPTION 46 47 48 This device implements an area of memory which is mapped into UNIX 49 shared memory. 50 51 52 PROPERTIES 53 54 55 reg = <address> <size> (required) 56 57 Determine where the memory lives in the parents address space. 58 The SHM area is assumed to be of the same length. 59 60 key = <integer> (required) 61 62 This is the key of the unix shared memory area. 63 64 EXAMPLES 65 66 67 Enable tracing of the shm: 68 69 | bash$ psim -t shm-device \ 70 71 72 Configure a 512 kilobytes of UNIX shared memory with the key 0x12345678 73 mapped into psim address space at 0x0c000000. 74 75 | -o '/shm@0x0c000000/reg 0x0c000000 0x80000' \ 76 | -o '/shm@0x0c000000/key 0x12345678' \ 77 78 sim/ppc/run -o '/#address-cells 1' \ 79 -o '/shm@0x0c000000/reg 0x0c000000 0x80000' \ 80 -o '/shm@0x0c000000/key 0x12345678' ../psim-hello/hello 81 82 BUGS 83 84 None known. 85 86 */ 87 88 typedef struct _hw_shm_device { 89 unsigned_word physical_address; 90 char *shm_address; 91 unsigned sizeof_memory; 92 key_t key; 93 int id; 94 } hw_shm_device; 95 96 static void 97 hw_shm_init_data(device *me) 98 { 99 hw_shm_device *shm = (hw_shm_device*)device_data(me); 100 const device_unit *d; 101 reg_property_spec reg; 102 int i; 103 104 /* Obtain the Key Value */ 105 if (device_find_property(me, "key") == NULL) 106 error("shm_init_data() required key property is missing\n"); 107 108 shm->key = (key_t) device_find_integer_property(me, "key"); 109 DTRACE(shm, ("shm key (0x%08x)\n", shm->key) ); 110 111 /* Figure out where this memory is in address space and how long it is */ 112 if ( !device_find_reg_array_property(me, "reg", 0, ®) ) 113 error("hw_shm_init_data() no address registered\n"); 114 115 /* Determine the address and length being as paranoid as possible */ 116 shm->physical_address = 0xffffffff; 117 shm->sizeof_memory = 0xffffffff; 118 119 for ( i=0 ; i<reg.address.nr_cells; i++ ) { 120 if (reg.address.cells[0] == 0 && reg.size.cells[0] == 0) 121 continue; 122 123 if ( shm->physical_address != 0xffffffff ) 124 device_error(me, "Only single celled address ranges supported\n"); 125 126 shm->physical_address = reg.address.cells[i]; 127 DTRACE(shm, ("shm physical_address=0x%x\n", shm->physical_address)); 128 129 shm->sizeof_memory = reg.size.cells[i]; 130 DTRACE(shm, ("shm length=0x%x\n", shm->sizeof_memory)); 131 } 132 133 if ( shm->physical_address == 0xffffffff ) 134 device_error(me, "Address not specified\n" ); 135 136 if ( shm->sizeof_memory == 0xffffffff ) 137 device_error(me, "Length not specified\n" ); 138 139 /* Now actually attach to or create the shared memory area */ 140 shm->id = shmget(shm->key, shm->sizeof_memory, IPC_CREAT | 0660); 141 if (shm->id == -1) 142 error("hw_shm_init_data() shmget failed\n"); 143 144 shm->shm_address = shmat(shm->id, (char *)0, SHM_RND); 145 if (shm->shm_address == (void *)-1) 146 error("hw_shm_init_data() shmat failed\n"); 147 } 148 149 static void 150 hw_shm_attach_address_callback(device *me, 151 attach_type attach, 152 int space, 153 unsigned_word addr, 154 unsigned nr_bytes, 155 access_type access, 156 device *client) /*callback/default*/ 157 { 158 hw_shm_device *shm = (hw_shm_device*)device_data(me); 159 160 if (space != 0) 161 error("shm_attach_address_callback() invalid address space\n"); 162 163 if (nr_bytes == 0) 164 error("shm_attach_address_callback() invalid size\n"); 165 } 166 167 168 static unsigned 169 hw_shm_io_read_buffer(device *me, 170 void *dest, 171 int space, 172 unsigned_word addr, 173 unsigned nr_bytes, 174 cpu *processor, 175 unsigned_word cia) 176 { 177 hw_shm_device *shm = (hw_shm_device*)device_data(me); 178 179 /* do we need to worry about out of range addresses? */ 180 181 DTRACE(shm, ("read %p %x %x %x\n", \ 182 shm->shm_address, shm->physical_address, addr, nr_bytes) ); 183 184 memcpy(dest, &shm->shm_address[addr - shm->physical_address], nr_bytes); 185 return nr_bytes; 186 } 187 188 189 static unsigned 190 hw_shm_io_write_buffer(device *me, 191 const void *source, 192 int space, 193 unsigned_word addr, 194 unsigned nr_bytes, 195 cpu *processor, 196 unsigned_word cia) 197 { 198 hw_shm_device *shm = (hw_shm_device*)device_data(me); 199 200 /* do we need to worry about out of range addresses? */ 201 202 DTRACE(shm, ("write %p %x %x %x\n", \ 203 shm->shm_address, shm->physical_address, addr, nr_bytes) ); 204 205 memcpy(&shm->shm_address[addr - shm->physical_address], source, nr_bytes); 206 return nr_bytes; 207 } 208 209 static device_callbacks const hw_shm_callbacks = { 210 { generic_device_init_address, hw_shm_init_data }, 211 { hw_shm_attach_address_callback, }, /* address */ 212 { hw_shm_io_read_buffer, 213 hw_shm_io_write_buffer }, /* IO */ 214 { NULL, }, /* DMA */ 215 { NULL, }, /* interrupt */ 216 { NULL, }, /* unit */ 217 NULL, 218 }; 219 220 static void * 221 hw_shm_create(const char *name, 222 const device_unit *unit_address, 223 const char *args) 224 { 225 hw_shm_device *shm = ZALLOC(hw_shm_device); 226 return shm; 227 } 228 229 230 231 const device_descriptor hw_shm_device_descriptor[] = { 232 { "shm", hw_shm_create, &hw_shm_callbacks }, 233 { NULL }, 234 }; 235 236 #endif /* _HW_SHM_C_ */ -
sim/ppc/Makefile.in
diff -Naur gdb-6.8.orig/sim/ppc/Makefile.in gdb-6.8/sim/ppc/Makefile.in
old new 834 834 hw_pal.o: hw_pal.c $(DEVICE_TABLE_H) $(CPU_H) 835 835 hw_phb.o: hw_phb.c $(DEVICE_TABLE_H) $(HW_PHB_H) $(COREFILE_H) 836 836 hw_register.o: hw_register.c $(DEVICE_TABLE_H) $(PSIM_H) 837 hw_sem.o: hw_sem.c $(DEVICE_TABLE_H) $(PSIM_H) 838 hw_shm.o: hw_shm.c $(DEVICE_TABLE_H) $(PSIM_H) 837 839 hw_trace.o: hw_trace.c $(DEVICE_TABLE_H) 838 840 hw_vm.o: hw_vm.c $(DEVICE_TABLE_H) $(CPU_H) 839 841 # ignore this line, it stops make from getting confused -
sim/ppc/ppc-instructions
diff -Naur gdb-6.8.orig/sim/ppc/ppc-instructions gdb-6.8/sim/ppc/ppc-instructions
old new 3402 3402 case spr_dec: 3403 3403 *rT = cpu_get_decrementer(processor); 3404 3404 break; 3405 case spr_tbrl: 3406 if (is_64bit_implementation) *rT = TB; 3407 else *rT = EXTRACTED64(TB, 32, 63); 3408 break; 3409 case spr_tbru: 3410 if (is_64bit_implementation) *rT = EXTRACTED64(TB, 0, 31); 3411 else *rT = EXTRACTED64(TB, 0, 31); 3412 break; 3405 3413 case spr_tbu: 3406 3414 case spr_tbl: 3407 3415 /* NOTE - these SPR's are not readable. Use mftb[ul] */ -
sim/ppc/ppc-spr-table
diff -Naur gdb-6.8.orig/sim/ppc/ppc-spr-table gdb-6.8/sim/ppc/ppc-spr-table
old new 32 32 SRR0:26:0:0 33 33 SRR1:27:0:0 34 34 VRSAVE:256:0:0 35 TBRL:268:0:0 36 TBRU:269:0:0 35 37 SPRG0:272:0:0 36 38 SPRG1:273:0:0 37 39 SPRG2:274:0:0
Note: See TracBrowser
for help on using the repository browser.