]> git.sur5r.net Git - openocd/blobdiff - src/helper/membuf.h
flash: require unique flash bank name
[openocd] / src / helper / membuf.h
index 6b291ff212cb1754c5bafd29475481aa8f9652d0..fa969985dbc06822db18853dc7c347482cba7c9e 100644 (file)
-#ifndef HELPER_MEMBUF_H\r
-#define HELPER_MEMBUF_H\r
-\r
-/** @file */\r
-\r
-/** @page MEMBUF - an auto-growing string buffer\r
- *\r
- * With OpenOCD often, one must write code that sends text to\r
- * different places.. the historical command_ctx, or JIM output,\r
- * and/or other places.\r
- *\r
- * This is a simple 'string buffer' that auto-grows.\r
- *\r
- * More correctly put, this is a "memory buffer"\r
- * it may contain binary data \r
- * \r
- * Note: Internally the buffer always has a 'null terminator'\r
- */\r
-\r
-/* contents of this structure are 'opaque' */\r
-struct membuf;\r
-  \r
-\r
-/** Create a new membuf\r
- * By default the memory buffer has "some non-zero-size"\r
- * (couple hundred bytes, exact amount is opaque)\r
- */\r
-struct membuf *membuf_new(void);\r
-\r
-/** delete (destroy) the mem buffer\r
- * @param pBuf - buffer to release\r
- */\r
-void membuf_delete( struct membuf *pBuf );\r
-\r
-\r
-/** grow/shrink a membuf by specified amount.\r
- * @param pBuf   - the buffer \r
- * @param amount - the amount to grow or shrink by.\r
- *\r
- * Symantics of 'realloc()' return NULL on failure\r
- */\r
-struct membuf *membuf_grow( struct membuf *pBuf, int amount );\r
-\r
-/** how long is this buffer (memlen(), strlen())\r
- * @param pBuf - the buffer\r
- * \r
- * @returns: length of current buffer.\r
- */\r
-size_t membuf_len( struct membuf *pBuf );\r
-\r
-\r
-/** reset an membuf to zero length.\r
- * @param pBuf - buffer to reset\r
- *\r
- * Note this does not 'release' the memory buffer\r
- */\r
-void membuf_reset( struct membuf *pBuf );\r
-\r
-\r
-/** sprintf() to the string buffer\r
- * @param pBuf - buffer to capture sprintf() data into\r
- * @param fmt  - printf format\r
- *\r
- * Returns 0 on success\r
- * Returns non-zero on failure\r
- */\r
-int membuf_sprintf( struct membuf *pBuf , const char *fmt, ... );\r
-\r
-/** vsprintf() to the string buffer\r
- * @param pBuf - buffer to capture sprintf() data into\r
- * @param fmt  - printf format\r
- * @param ap   - va_list for fmt\r
- *\r
- * Returns 0 on success\r
- * Returns non-zero on failure\r
- */\r
-int membuf_vsprintf( struct membuf *pBuf , const char *fmt, va_list ap);\r
-\r
-/** Tokenize lines using strtok() \r
- * @param pBuf - buffer to tokenize\r
- * @param delim - delimiter parameter for strtok_r()\r
- * \r
- * Identical to "strtok()" - pass "pBuff=NULL" on second call\r
- *\r
- * NOTE: This call is <b>destructive</b> to the buffer.\r
- */\r
-const char *membuf_strtok( struct membuf *pBuf, const char *delim, void **pSave );\r
-\r
-/** Return pointer to the memory in the buffer\r
- * @param pBuf - buffer\r
- *\r
- * NOTE: Thou shall not modify this pointer, it is <b>CONST</b>\r
- */\r
-const void *membuf_datapointer( struct membuf *pBuf );\r
-\r
-\r
-/** Append data to the buffer\r
- * @param pBuf  - buffer to append\r
- * @param pData - pointer to data to append\r
- * @param len   - length of data to append\r
- *\r
- * Modified symantics of "memcpy()".  On memory allocation failure\r
- * returns NULL.  On success, returns pointer to orginal membuf.\r
- */\r
-struct membuf *membuf_append( struct membuf *pBuf, const void *pData, size_t len );\r
-\r
-\r
-/** Append string to the buffer\r
- * @param pBuf  - buffer to append\r
- * @param str   - string to append\r
- *\r
- * Modified symantics of "strcat()".  On memory allocation failure\r
- * returns NULL.  On success, returns pointer to orginal membuf.\r
- */\r
-struct membuf *membuf_strcat( struct membuf *pBuf, const char *s );\r
-\r
-\r
-#endif\r
+/***************************************************************************
+ *   Copyright (C) 2009 By Duane Ellis                                     *
+ *   openocd@duaneellis.com                                                *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   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.             *
+ ***************************************************************************/
+#ifndef HELPER_MEMBUF_H
+#define HELPER_MEMBUF_H
+
+/** @file
+ * MEMBUF - an auto-growing string buffer
+ *
+ * With OpenOCD often, one must write code that sends text to
+ * different places.. the historical command_ctx, or JIM output,
+ * and/or other places.
+ *
+ * This is a simple 'string buffer' that auto-grows.
+ *
+ * More correctly put, this is a "memory buffer"
+ * it may contain binary data
+ *
+ * Note: Internally the buffer always has a 'null terminator'
+ */
+
+/* contents of this structure are 'opaque' */
+struct membuf;
+
+
+/** Create a new membuf
+ * By default the memory buffer has "some non-zero-size"
+ * (couple hundred bytes, exact amount is opaque)
+ */
+struct membuf *membuf_new(void);
+
+/** delete (destroy) the mem buffer
+ * @param pBuf - buffer to release
+ */
+void membuf_delete(struct membuf *pBuf);
+
+
+/** grow/shrink a membuf by specified amount.
+ * @param pBuf   - the buffer
+ * @param amount - the amount to grow or shrink by.
+ *
+ * Symantics of 'realloc()' return NULL on failure
+ */
+struct membuf *membuf_grow(struct membuf *pBuf, int amount);
+
+/** how long is this buffer (memlen(), strlen())
+ * @param pBuf - the buffer
+ *
+ * @returns: length of current buffer.
+ */
+size_t membuf_len(struct membuf *pBuf);
+
+
+/** reset an membuf to zero length.
+ * @param pBuf - buffer to reset
+ *
+ * Note this does not 'release' the memory buffer
+ */
+void membuf_reset(struct membuf *pBuf);
+
+
+/** sprintf() to the string buffer
+ * @param pBuf - buffer to capture sprintf() data into
+ * @param fmt  - printf format
+ *
+ * Returns 0 on success
+ * Returns non-zero on failure
+ */
+int membuf_sprintf(struct membuf *pBuf , const char *fmt, ...);
+
+/** vsprintf() to the string buffer
+ * @param pBuf - buffer to capture sprintf() data into
+ * @param fmt  - printf format
+ * @param ap   - va_list for fmt
+ *
+ * Returns 0 on success
+ * Returns non-zero on failure
+ */
+int membuf_vsprintf(struct membuf *pBuf , const char *fmt, va_list ap);
+
+/** Tokenize lines using strtok()
+ * @param pBuf - buffer to tokenize
+ * @param delim - delimiter parameter for strtok_r()
+ * @param pSave - pointer to string context for tokenization
+ *
+ * Identical to "strtok()" - pass "pBuff = NULL" on second call
+ *
+ * NOTE: This call is <b > destructive</b> to the buffer.
+ */
+const char *membuf_strtok(struct membuf *pBuf, const char *delim, void **pSave);
+
+/** Return pointer to the memory in the buffer
+ * @param pBuf - buffer
+ *
+ * NOTE: Thou shall not modify this pointer, it is <b > CONST</b>
+ */
+const void *membuf_datapointer(struct membuf *pBuf);
+
+
+/** Append data to the buffer
+ * @param pBuf  - buffer to append
+ * @param pData - pointer to data to append
+ * @param len   - length of data to append
+ *
+ * Modified symantics of "memcpy()".  On memory allocation failure
+ * returns NULL.  On success, returns pointer to orginal membuf.
+ */
+struct membuf *membuf_append(struct membuf *pBuf, const void *pData, size_t len);
+
+
+/** Append string to the buffer
+ * @param pBuf  - buffer to append
+ * @param str   - string to append
+ *
+ * Modified symantics of "strcat()".  On memory allocation failure
+ * returns NULL.  On success, returns pointer to orginal membuf.
+ */
+struct membuf *membuf_strcat(struct membuf *pBuf, const char *str);
+
+
+#endif