This is an automated email from Gerrit.

Spencer Oliver ([email protected]) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/635

-- gerrit

commit ce8c625554f58ec98a54290783a07d2176aeeb4d
Author: Spencer Oliver <[email protected]>
Date:   Thu May 10 22:36:23 2012 +0100

    target: enable TARGET_EVENT_EXAMINE_* events
    
    Change-Id: I33efc0994b7bfe0faa2f4e8457fcc3c8e43d3571
    Signed-off-by: Spencer Oliver <[email protected]>

diff --git a/doc/openocd.texi b/doc/openocd.texi
index 38591fd..c845c45 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -4101,12 +4101,10 @@ The following target events are defined:
 @* The target has resumed (i.e.: gdb said run)
 @item @b{early-halted}
 @* Occurs early in the halt process
-@ignore
-@item @b{examine-end}
-@* Currently not used (goal: when JTAG examine completes)
 @item @b{examine-start}
-@* Currently not used (goal: when JTAG examine starts)
-@end ignore
+@* Before target examine is called.
+@item @b{examine-end}
+@* After target examine is called with no errors.
 @item @b{gdb-attach}
 @* When GDB connects. This is before any communication with the target, so this
 can be used to set up the target so it is possible to probe flash. Probing 
flash
@@ -4192,7 +4190,6 @@ when reset disables PLLs needed to use a fast clock.
 @* Target has resumed
 @end itemize
 
-
 @node Flash Commands
 @chapter Flash Commands
 
diff --git a/src/target/startup.tcl b/src/target/startup.tcl
index 02cefb0..90f947d 100644
--- a/src/target/startup.tcl
+++ b/src/target/startup.tcl
@@ -64,7 +64,11 @@ proc ocd_process_reset_inner { MODE } {
        # Examine all targets on enabled taps.
        foreach t $targets {
                if {[jtag tapisenabled [$t cget -chain-position]]} {
-                       $t arp_examine
+                       $t invoke-event examine-start
+                       set err [catch "$t arp_examine"]
+                       if { $err == 0 } {
+                               $t invoke-event examine-end
+                       }
                }
        }
 
@@ -152,8 +156,8 @@ proc armv4_5 params {
        arm $params
 }
 
-# Target/chain configuration scripts can either execute commands directly 
-# or define a procedure which is executed once all configuration 
+# Target/chain configuration scripts can either execute commands directly
+# or define a procedure which is executed once all configuration
 # scripts have completed.
 #
 # By default(classic) the config scripts will set up the target configuration
diff --git a/src/target/target.c b/src/target/target.c
index ccaa6e3..7dae8a9 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -611,9 +611,17 @@ static int jtag_enable_callback(enum jtag_event event, 
void *priv)
                return ERROR_OK;
 
        jtag_unregister_event_callback(jtag_enable_callback, target);
-       return target_examine_one(target);
-}
 
+       target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_START);
+
+       int retval = target_examine_one(target);
+       if (retval != ERROR_OK)
+               return retval;
+
+       target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_END);
+
+       return retval;
+}
 
 /* Targets that correctly implement init + examine, i.e.
  * no communication with target during init:
@@ -632,12 +640,18 @@ int target_examine(void)
                                        target);
                        continue;
                }
+
+               target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_START);
+
                retval = target_examine_one(target);
                if (retval != ERROR_OK)
                        return retval;
+
+               target_call_event_callbacks(target, TARGET_EVENT_EXAMINE_END);
        }
        return retval;
 }
+
 const char *target_type_name(struct target *target)
 {
        return target->type->name;

-- 

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to