aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/lib/java/lang/ThreadLocal.class
blob: 86f3a03281bef7ccf21362cd2ffdaac9b2d18f55 (plain)
ofshex dumpascii
0000 ca fe ba be 00 00 00 31 00 4f 07 00 02 01 00 15 6a 61 76 61 2f 6c 61 6e 67 2f 54 68 72 65 61 64 .......1.O......java/lang/Thread
0020 4c 6f 63 61 6c 07 00 04 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 01 00 08 73 65 Local......java/lang/Object...se
0040 6e 74 69 6e 65 6c 01 00 12 4c 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 3b 01 00 0c 6e 65 ntinel...Ljava/lang/Object;...ne
0060 78 74 48 61 73 68 42 61 73 65 01 00 01 49 01 00 08 66 61 73 74 48 61 73 68 01 00 0a 54 4c 53 50 xtHashBase...I...fastHash...TLSP
0080 6f 69 6e 74 65 72 01 00 11 4c 67 6e 75 2f 67 63 6a 2f 52 61 77 44 61 74 61 3b 01 00 08 3c 63 6c ointer...Lgnu/gcj/RawData;...<cl
00a0 69 6e 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65 0a 00 03 00 10 0c 00 11 00 0d 01 00 06 3c init>...()V...Code.............<
00c0 69 6e 69 74 3e 09 00 01 00 13 0c 00 05 00 06 09 00 01 00 15 0c 00 07 00 08 01 00 0f 4c 69 6e 65 init>.......................Line
00e0 4e 75 6d 62 65 72 54 61 62 6c 65 01 00 12 4c 6f 63 61 6c 56 61 72 69 61 62 6c 65 54 61 62 6c 65 NumberTable...LocalVariableTable
0100 01 00 0f 63 6f 6d 70 75 74 65 4e 65 78 74 48 61 73 68 01 00 03 28 29 49 01 00 04 74 68 69 73 01 ...computeNextHash...()I...this.
0120 00 17 4c 6a 61 76 61 2f 6c 61 6e 67 2f 54 68 72 65 61 64 4c 6f 63 61 6c 3b 01 00 16 4c 6f 63 61 ..Ljava/lang/ThreadLocal;...Loca
0140 6c 56 61 72 69 61 62 6c 65 54 79 70 65 54 61 62 6c 65 01 00 1c 4c 6a 61 76 61 2f 6c 61 6e 67 2f lVariableTypeTable...Ljava/lang/
0160 54 68 72 65 61 64 4c 6f 63 61 6c 3c 54 54 3b 3e 3b 0a 00 01 00 1f 0c 00 20 00 0d 01 00 0f 63 6f ThreadLocal<TT;>;.............co
0180 6e 73 74 72 75 63 74 4e 61 74 69 76 65 0a 00 01 00 22 0c 00 18 00 19 09 00 01 00 24 0c 00 09 00 nstructNative....".........$....
01a0 08 01 00 0c 69 6e 69 74 69 61 6c 56 61 6c 75 65 01 00 14 28 29 4c 6a 61 76 61 2f 6c 61 6e 67 2f ....initialValue...()Ljava/lang/
01c0 4f 62 6a 65 63 74 3b 01 00 09 53 69 67 6e 61 74 75 72 65 01 00 05 28 29 54 54 3b 01 00 03 67 65 Object;...Signature...()TT;...ge
01e0 74 01 00 0b 69 6e 74 65 72 6e 61 6c 47 65 74 0a 00 2c 00 2e 07 00 2d 01 00 10 6a 61 76 61 2f 6c t...internalGet..,....-...java/l
0200 61 6e 67 2f 54 68 72 65 61 64 0c 00 2f 00 30 01 00 0f 67 65 74 54 68 72 65 61 64 4c 6f 63 61 6c ang/Thread../.0...getThreadLocal
0220 73 01 00 1c 28 29 4c 6a 61 76 61 2f 6c 61 6e 67 2f 54 68 72 65 61 64 4c 6f 63 61 6c 4d 61 70 3b s...()Ljava/lang/ThreadLocalMap;
0240 0a 00 32 00 34 07 00 33 01 00 18 6a 61 76 61 2f 6c 61 6e 67 2f 54 68 72 65 61 64 4c 6f 63 61 6c ..2.4..3...java/lang/ThreadLocal
0260 4d 61 70 0c 00 29 00 35 01 00 2b 28 4c 6a 61 76 61 2f 6c 61 6e 67 2f 54 68 72 65 61 64 4c 6f 63 Map..).5..+(Ljava/lang/ThreadLoc
0280 61 6c 3b 29 4c 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 3b 0a 00 01 00 37 0c 00 25 00 26 al;)Ljava/lang/Object;....7..%.&
02a0 0a 00 32 00 39 0c 00 3a 00 3b 01 00 03 73 65 74 01 00 2c 28 4c 6a 61 76 61 2f 6c 61 6e 67 2f 54 ..2.9..:.;...set..,(Ljava/lang/T
02c0 68 72 65 61 64 4c 6f 63 61 6c 3b 4c 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 3b 29 56 01 hreadLocal;Ljava/lang/Object;)V.
02e0 00 03 6d 61 70 01 00 1a 4c 6a 61 76 61 2f 6c 61 6e 67 2f 54 68 72 65 61 64 4c 6f 63 61 6c 4d 61 ..map...Ljava/lang/ThreadLocalMa
0300 70 3b 01 00 05 76 61 6c 75 65 01 00 03 54 54 3b 01 00 15 28 4c 6a 61 76 61 2f 6c 61 6e 67 2f 4f p;...value...TT;...(Ljava/lang/O
0320 62 6a 65 63 74 3b 29 56 01 00 06 28 54 54 3b 29 56 01 00 0b 69 6e 74 65 72 6e 61 6c 53 65 74 01 bject;)V...(TT;)V...internalSet.
0340 00 06 72 65 6d 6f 76 65 01 00 0e 69 6e 74 65 72 6e 61 6c 52 65 6d 6f 76 65 0a 00 32 00 46 0c 00 ..remove...internalRemove..2.F..
0360 43 00 47 01 00 1a 28 4c 6a 61 76 61 2f 6c 61 6e 67 2f 54 68 72 65 61 64 4c 6f 63 61 6c 3b 29 56 C.G...(Ljava/lang/ThreadLocal;)V
0380 01 00 08 66 69 6e 61 6c 69 7a 65 01 00 0a 45 78 63 65 70 74 69 6f 6e 73 07 00 4b 01 00 13 6a 61 ...finalize...Exceptions..K...ja
03a0 76 61 2f 6c 61 6e 67 2f 54 68 72 6f 77 61 62 6c 65 01 00 0a 53 6f 75 72 63 65 46 69 6c 65 01 00 va/lang/Throwable...SourceFile..
03c0 10 54 68 72 65 61 64 4c 6f 63 61 6c 2e 6a 61 76 61 01 00 28 3c 54 3a 4c 6a 61 76 61 2f 6c 61 6e .ThreadLocal.java..(<T:Ljava/lan
03e0 67 2f 4f 62 6a 65 63 74 3b 3e 4c 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 3b 00 21 00 01 g/Object;>Ljava/lang/Object;.!..
0400 00 03 00 00 00 04 00 18 00 05 00 06 00 00 00 0a 00 07 00 08 00 00 00 10 00 09 00 08 00 00 00 02 ................................
0420 00 0a 00 0b 00 00 00 0c 00 08 00 0c 00 0d 00 01 00 0e 00 00 00 37 00 02 00 00 00 00 00 0f bb 00 .....................7..........
0440 03 59 b7 00 0f b3 00 12 04 b3 00 14 b1 00 00 00 02 00 16 00 00 00 0e 00 03 00 00 00 60 00 0a 00 .Y..........................`...
0460 65 00 0e 00 59 00 17 00 00 00 02 00 00 00 22 00 18 00 19 00 01 00 0e 00 00 00 4a 00 03 00 01 00 e...Y........."...........J.....
0480 00 00 0e b2 00 14 59 04 60 b3 00 14 11 1a 35 68 ac 00 00 00 03 00 16 00 00 00 06 00 01 00 00 00 ......Y.`.....5h................
04a0 6c 00 17 00 00 00 0c 00 01 00 00 00 0e 00 1a 00 1b 00 00 00 1c 00 00 00 0c 00 01 00 00 00 0e 00 l...............................
04c0 1a 00 1d 00 00 00 01 00 11 00 0d 00 01 00 0e 00 00 00 59 00 02 00 01 00 00 00 11 2a b7 00 0f 2a ..................Y........*...*
04e0 b7 00 1e 2a 2a b7 00 21 b5 00 23 b1 00 00 00 03 00 16 00 00 00 12 00 04 00 00 00 77 00 04 00 79 ...**..!..#................w...y
0500 00 08 00 7a 00 10 00 7b 00 17 00 00 00 0c 00 01 00 00 00 11 00 1a 00 1b 00 00 00 1c 00 00 00 0c ...z...{........................
0520 00 01 00 00 00 11 00 1a 00 1d 00 00 00 04 00 25 00 26 00 02 00 27 00 00 00 02 00 28 00 0e 00 00 ...............%.&...'.....(....
0540 00 3e 00 01 00 01 00 00 00 02 01 b0 00 00 00 03 00 16 00 00 00 06 00 01 00 00 00 87 00 17 00 00 .>..............................
0560 00 0c 00 01 00 00 00 02 00 1a 00 1b 00 00 00 1c 00 00 00 0c 00 01 00 00 00 02 00 1a 00 1d 00 00 ................................
0580 01 01 00 29 00 26 00 01 00 27 00 00 00 02 00 28 00 12 00 2a 00 26 00 01 00 0e 00 00 00 8c 00 03 ...).&...'.....(...*.&..........
05a0 00 03 00 00 00 1e b8 00 2b 4c 2b 2a b6 00 31 4d 2c b2 00 12 a6 00 0e 2a b6 00 36 4d 2b 2a 2c b6 ........+L+*..1M,......*..6M+*,.
05c0 00 38 2c b0 00 00 00 03 00 16 00 00 00 1a 00 06 00 00 00 96 00 04 00 99 00 0a 00 9a 00 11 00 9c .8,.............................
05e0 00 16 00 9d 00 1c 00 9f 00 17 00 00 00 20 00 03 00 00 00 1e 00 1a 00 1b 00 00 00 04 00 1a 00 3c ...............................<
0600 00 3d 00 01 00 0a 00 14 00 3e 00 06 00 02 00 1c 00 00 00 16 00 02 00 00 00 1e 00 1a 00 1d 00 00 .=.......>......................
0620 00 0a 00 14 00 3e 00 3f 00 02 01 01 00 3a 00 40 00 01 00 27 00 00 00 02 00 41 00 12 00 42 00 40 .....>.?.....:.@...'.....A...B.@
0640 00 01 00 0e 00 00 00 63 00 03 00 03 00 00 00 0b b8 00 2b 4d 2c 2a 2b b6 00 38 b1 00 00 00 03 00 .......c..........+M,*+..8......
0660 16 00 00 00 0e 00 03 00 00 00 ae 00 04 00 b1 00 0a 00 b2 00 17 00 00 00 20 00 03 00 00 00 0b 00 ................................
0680 1a 00 1b 00 00 00 00 00 0b 00 3e 00 06 00 01 00 04 00 07 00 3c 00 3d 00 02 00 1c 00 00 00 0c 00 ..........>.........<.=.........
06a0 01 00 00 00 0b 00 1a 00 1d 00 00 01 01 00 43 00 0d 00 00 00 12 00 44 00 0d 00 01 00 0e 00 00 00 ..............C.......D.........
06c0 58 00 02 00 02 00 00 00 0a b8 00 2b 4c 2b 2a b6 00 45 b1 00 00 00 03 00 16 00 00 00 0e 00 03 00 X..........+L+*..E..............
06e0 00 00 bd 00 04 00 be 00 09 00 bf 00 17 00 00 00 16 00 02 00 00 00 0a 00 1a 00 1b 00 00 00 04 00 ................................
0700 06 00 3c 00 3d 00 01 00 1c 00 00 00 0c 00 01 00 00 00 0a 00 1a 00 1d 00 00 01 04 00 48 00 0d 00 ..<.=.......................H...
0720 01 00 49 00 00 00 04 00 01 00 4a 01 02 00 20 00 0d 00 00 00 02 00 4c 00 00 00 02 00 4d 00 27 00 ..I.......J...........L.....M.'.
0740 00 00 02 00 4e ....N
ing JTAG interfaces to emulate SPI/UART - allow SPI to program flash, MCUs, etc. @subsection thelistjtaginterfaces JTAG Interfaces There are some known bugs to fix in JTAG adapter drivers: - For JTAG_STATEMOVE to TAP_RESET, all drivers must ignore the current recorded state. The tap_get_state() call won't necessarily return the correct value, especially at server startup. Fix is easy: in that case, always issue five clocks with TMS high. - amt_jtagaccel.c - arm-jtag-ew.c - bitbang.c - bitq.c - gw16012.c - jlink.c - usbprog.c - vsllink.c - rlink/rlink.c - bug: USBprog is broken with new tms sequence; it needs 7-clock cycles. Fix promised from Peter Denison openwrt at marshadder.org Workaround: use "tms_sequence long" @par https://lists.berlios.de/pipermail/openocd-development/2009-July/009426.html The following tasks have been suggested for improving OpenOCD's JTAG interface support: - rework USB communication to be more robust. Two possible options are: -# use libusb-1.0.1 with libusb-compat-0.1.1 (non-blocking I/O wrapper) -# rewrite implementation to use non-blocking I/O - J-Link driver: - fix to work with long scan chains, such as R.Doss's svf test. - Autodetect USB based adapters; this should be easy on Linux. If there's more than one, list the options; otherwise, just select that one. The following tasks have been suggested for adding new JTAG interfaces: - TCP driver: allow client/server for remote JTAG interface control. This requires a client and a server. The server is built into the normal OpenOCD and takes commands from the client and executes them on the interface returning the result of TCP/IP. The client is an OpenOCD which is built with a TCP/IP minidriver. The use of a minidriver is required to capture all the jtag_add_xxx() fn's at a high enough level and repackage these cmd's as TCP/IP packets handled by the server. @section thelistswd Serial Wire Debug - implement Serial Wire Debug interface @section thelistbs Boundary Scan Support - add STAPL support? - add BSDL support? A few possible options for the above: -# Fake a TCL equivalent? -# Integrate an existing library? -# Write a new C implementation a la Jim? Once the above are completed: - add support for programming flash using boundary scan techniques - add integration with a modified gerber view program: - provide means to view the PCB and select pins and traces - allow use-cases such as the following: - @b Stimulus -# Double-click on a pin (or trace) with the mouse. - @b Effects -# The trace starts blinking, and -# OpenOCD toggles the pin(s) 0/1. @section thelisttargets Target Support - Many common ARM cores could be autodetected using IDCODE - general layer cleanup: @par https://lists.berlios.de/pipermail/openocd-development/2009-May/006590.html - regression: "reset halt" between 729(works) and 788(fails): @par https://lists.berlios.de/pipermail/openocd-development/2009-July/009206.html - registers - add flush-value operation, call them all on resume/reset - mcr/mrc target->type support - missing from ARM920t, ARM966e, XScale. It's possible that the current syntax is unable to support read-modify-write operations(see arm966e). - mcr/mrc - retire cp15 commands when there the mrc/mrc commands have been tested from: arm926ejs, arm720t, cortex_a8 - ARM7/9: - clean up "arm9tdmi vector_catch". Available for some arm7 cores? @par https://lists.berlios.de/pipermail/openocd-development/2009-October/011488.html https://lists.berlios.de/pipermail/openocd-development/2009-October/011506.html - add reset option to allow programming embedded ice while srst is asserted. Some CPUs will gate the JTAG clock when srst is asserted and in this case, it is necessary to program embedded ice and then assert srst afterwards. - ARM926EJS: - reset run/halt/step is not robust; needs testing to map out problems. - ARM11 improvements (MB?) - add support for asserting srst to reset the core. - Single stepping works, but should automatically use hardware stepping if available. - mdb can return garbage data if read byte operation fails for a memory region(16 & 32 byte access modes may be supported). Is this a bug in the .MX31 PDK init script? Try on i.MX31 PDK: mdw 0xb80005f0 0x8, mdh 0xb80005f0 0x10, mdb 0xb80005f0 0x20. mdb returns garabage. - implement missing functionality (grep FNC_INFO_NOTIMPLEMENTED ...) - Thumb2 single stepping: ARM1156T2 needs simulator support - Cortex-A8 support (ML) - add target implementation (ML) - Cortex-M3 support - when stepping, only write dirtied registers (be faster) - when connecting to halted core, fetch registers (startup is quirky) - Generic ARM run_algorithm() interface - tagged struct wrapping ARM instructions and metadata - not revision-specific (current: ARMv4+ARMv5 -or- ARMv6 -or- ARMv7) - usable with at least arm_nandwrite() and generic CFI drivers - ETM - don't show FIFOFULL registers if they're not supported - use comparators to get more breakpoints and watchpoints - add "etm drivers" command - trace driver init() via examine() paths only, not setup()/reset - MC1322x support (JW/DE?) - integrate and test support from JW (and DE?) - get working with a known good interface (i.e. not today's jlink) - AT91SAM92xx: - improvements for unknown-board-atmel-at91sam9260.cfg (RD) - STR9x: (ZW) - improvements to str912.cfg to be more general purpose - AVR: (SQ) - independently verify implementation - incrementally improve working prototype in trunk. (SQ) - work out how to debug this target - AVR debugging protocol. - FPGA: - Altera Nios Soft-CPU support - Coldfire (suggested by NC) - can we draw from the BDM project? @par http://bdm.sourceforge.net/ or the OSBDM package @par http://forums.freescale.com/freescale/board/message?board.id=OSBDM08&thread.id=422 @section thelistsvf SVF/XSVF - develop SVF unit tests - develop XSVF unit tests @section thelistflash Flash Support - finish documentation for the following flash drivers: - avr - pic32mx - ocl - str9xpec - Don't expect writing all-ones to be a safe way to write without changing bit values. Minimally it loses on flash modules with internal ECC, where it may change the ECC. - NOR flash_write_unlock() does that between sectors - there may be other cases too - Make sure all commands accept either a bank name or a bank number, and be sure both identifiers show up in "flash banks" and "nand list". Right now the user-friendly names are pretty much hidden... @subsection thelistflashcfi CFI - finish implementing bus width/chip width handling (suggested by NC) - factor vendor-specific code into separate source files - add new callback interface for vendor-specific code - investigate/implement "thin wrapper" to use eCos CFI drivers (ØH) @section thelistdebug Debugger Support - add support for masks in watchpoints? @par https://lists.berlios.de/pipermail/openocd-development/2009-October/011507.html - breakpoints can get lost in some circumstances: @par https://lists.berlios.de/pipermail/openocd-development/2009-June/008853.html - add support for masks in watchpoints. The trick is that GDB does not support a breakpoint mask in the remote protocol. One way to work around this is to add a separate command "watchpoint_mask add/rem <addr> <mask>", that is run to register a list of masks that the gdb_server knows to use with a particular watchpoint address. - integrate Keil AGDI interface to OpenOCD? (submitted by Dario Vecchio) @section thelisttesting Testing Suite This section includes several related groups of ideas: - @ref thelistunittests - @ref thelistsmoketests - @ref thelisttestreports - @ref thelisttestgenerichw @subsection thelistunittests Unit Tests - add testing skeleton to provide frameworks for adding tests - implement server unit tests - implement JTAG core unit tests - implement JTAG interface unit tests - implement flash unit tests - implement target unit tests @subsection thelistsmoketests Smoke Test Tools -# extend 'make check' with a smoketest app - checks for OOCD_TEST_CONFIG, etc. in environment (or config file) - if properly set, runs the smoke test with specified parameters - openocd -f ${OOCD_TEST_CONFIG} - implies a modular test suite (see below) - should be able to run some minimal tests with dummy interface: - compare results of baseline sanity checks with expected results -# builds a more complete test suite: - existing testing/examples/ look like a great start - all targets should be tested fully and for all capabilities - we do NOT want a "lowest common denominator" test suite - ... but can we start with one to get going? - probably requires one test configuration file per board/target - modularization can occur here, just like with targets/boards/chips - coverage can increase over time, building up bundles of tests -# add new 'smoketest' Makefile target: - calls 'make check' (and the smoketest app) - gather inputs and output into a report file @subsection thelisttestreports Test Feedback Tools These ideas were first introduced here: @par https://lists.berlios.de/pipermail/openocd-development/2009-May/006358.html - provide report submission scripts for e-mail and web forms - add new Makefile targets to post the report: - 'checkreportsend' -- send to list via e-mail (via sendmail) - 'checkreportpost' -- send web form (via curl or other script) @subsection thelisttestgenerichw Generic Hardware Tester - implement VHDL to use for FPGA-based JTAG TAP testing device - develop test suite that utilizes this testing device @section thelistautotools Autotools Build System - make entire configure process require less user consideration: - automatically detect the features that are available, unless options were specifically provided to configure - provide a report of the drivers that will be build at the end of running configure, so the users can verify which drivers will be built during 'make' (and their options) . - eliminate sources of confusion in @c bootstrap script: -# Make @c bootstrap call 'configure --enable-maintainer-mode \<opts\>'? -# Add @c buildstrap script to assist with bootstrap and configure steps. - automatically build tool-chains required for cross-compiling - produce mingw32, arm-elf, others using in-tree scripts - build all required target code from sources - make JTAG and USB debug output a run-time configuration option @section thelistarchitecture Architectural Tasks The following architectural tasks need to be accomplished and should be fairly easy to complete: - use dynamic allocations for working memory. Scan & fix code for excessive stack allocations. take linux/scripts/checkstack.pl and see what the worst offenders are. Dynamic stack allocations are found at the bottom of the list below. Example, on amd64: $ objdump -d | checkstack.pl | head -10 0x004311e3 image_open [openocd]: 13464 0x00431301 image_open [openocd]: 13464 0x004237a4 target_array2mem [openocd]: 4376 0x0042382b target_array2mem [openocd]: 4376 0x00423e74 target_mem2array [openocd]: 4360 0x00423ef9 target_mem2array [openocd]: 4360 0x00404aed handle_svf_command [openocd]: 2248 0x00404b7e handle_svf_command [openocd]: 2248 0x00413581 handle_flash_fill_command [openocd]: 2200 0x004135fa handle_flash_fill_command [openocd]: 2200 - clean-up code to match style guides - factor code to eliminate duplicated functionality - rewrite code that uses casts to access 16-bit and larger types from unaligned memory addresses - libopenocd support: @par https://lists.berlios.de/pipermail/openocd-development/2009-May/006405.html - review and clean up interface/target/flash APIs The following strategic tasks will require ambition, knowledge, and time to complete: - overhaul use of types to improve 32/64-bit portability - types for both host and target word sizes? - can we use GDB's CORE_TYPE support? - Allow N:M:P mapping of servers, targets, and interfaces - loadable module support for interface/target/flash drivers and commands - support both static and dynamic modules. - should probably use libltdl for dynamic library handing. @section thelistadmin Documentation Tasks - Develop milestone and release guidelines, processes, and scripts. - Develop "style" guidelines (and scripts) for maintainers: - reviewing patches - committing to git - Review Users' Guide for documentation errors or omissions - "capture" and "ocd_find" commands - "ocd_" prefix on various stuff - Update Developer's Manual (doxygen output) - Add documentation describing the architecture of each module - Provide more Technical Primers to bootstrap contributor knowledge */ /** @file This file contains the @ref thelist page. */