flash/nor: implement flash bank deallocation on OpenOCD exit
[openocd.git] / src / flash / nor / driver.h
index afd05285a2766fcd9f3e586a1d7338a8740b0fc5..e7b3234439d73f13ff39c7d7a54781ad487fd2d3 100644 (file)
  *   GNU General Public License for more details.                          *
  *                                                                         *
  *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
-#ifndef FLASH_NOR_DRIVER_H
-#define FLASH_NOR_DRIVER_H
+
+#ifndef OPENOCD_FLASH_NOR_DRIVER_H
+#define OPENOCD_FLASH_NOR_DRIVER_H
 
 struct flash_bank;
 
@@ -48,14 +47,18 @@ struct flash_bank;
  * corresponding static <code>flash_driver_<i>callback</i>()</code>
  * routine in flash.c.
  */
-struct flash_driver
-{
+struct flash_driver {
        /**
         * Gives a human-readable name of this flash driver,
         * This field is used to select and initialize the driver.
         */
        const char *name;
 
+       /**
+        * Gives a human-readable description of arguments.
+        */
+       const char *usage;
+
        /**
         * An array of driver-specific commands to register.  When called
         * during the "flash bank" command, the driver can register addition
@@ -132,7 +135,7 @@ struct flash_driver
         * @returns ERROR_OK if successful; otherwise, an error code.
         */
        int (*write)(struct flash_bank *bank,
-                       uint8_t *buffer, uint32_t offset, uint32_t count);
+                       const uint8_t *buffer, uint32_t offset, uint32_t count);
 
        /**
         * Read data from the flash. Note CPU address will be
@@ -195,7 +198,7 @@ struct flash_driver
        /**
         * A more gentle flavor of filash_driver_s::probe, performing
         * setup with less noise.  Generally, driver routines should test
-        * to seee if the bank has already been probed; if it has, the
+        * to see if the bank has already been probed; if it has, the
         * driver probably should not perform its probe a second time.
         *
         * This callback is often called from the inside of other
@@ -206,9 +209,18 @@ struct flash_driver
         * @returns ERROR_OK if successful; otherwise, an error code.
         */
        int (*auto_probe)(struct flash_bank *bank);
+
+       /**
+        * Deallocates private driver structures.
+        * Use default_flash_free_driver_priv() to simply free(bank->driver_priv)
+        *
+        * @param bank - the bank being destroyed
+        */
+       void (*free_driver_priv)(struct flash_bank *bank);
 };
 
-#define FLASH_BANK_COMMAND_HANDLER(name) static __FLASH_BANK_COMMAND(name)
+#define FLASH_BANK_COMMAND_HANDLER(name) \
+       static __FLASH_BANK_COMMAND(name)
 
 /**
  * Find a NOR flash driver by its name.
@@ -217,4 +229,4 @@ struct flash_driver
  */
 struct flash_driver *flash_driver_find_by_name(const char *name);
 
-#endif // FLASH_NOR_DRIVER_H
+#endif /* OPENOCD_FLASH_NOR_DRIVER_H */

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)