Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1236414 > unrolled thread
| Started by | Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
|---|---|
| First post | 2015-09-30 16:50 +0200 |
| Last post | 2015-09-30 20:20 +0200 |
| Articles | 5 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH] cris: kgdb: use native hex2bin Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2015-09-30 16:50 +0200
Re: [PATCH] cris: kgdb: use native hex2bin Jesper Nilsson <jesper.nilsson@axis.com> - 2015-09-30 17:30 +0200
Re: [PATCH] cris: kgdb: use native hex2bin Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2015-09-30 17:40 +0200
Re: [PATCH] cris: kgdb: use native hex2bin Jesper Nilsson <jesper@jni.nu> - 2015-09-30 20:10 +0200
Re: [PATCH] cris: kgdb: use native hex2bin Jesper Nilsson <jesper.nilsson@axis.com> - 2015-09-30 20:20 +0200
| From | Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
|---|---|
| Date | 2015-09-30 16:50 +0200 |
| Subject | Re: [PATCH] cris: kgdb: use native hex2bin |
| Message-ID | <qeqRI-7Z1-19@gated-at.bofh.it> |
On Tue, 2013-06-04 at 11:51 +0300, Andy Shevchenko wrote:
> There are kernel native helpers to convert hex ascii to the binary
> format:
> hex_to_bin() and hex2bin(). Thus, no need to reimplement them
> customly.
>
No one is interested in this?
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> arch/cris/arch-v10/kernel/kgdb.c | 36 +++----------------------
> arch/cris/arch-v32/kernel/kgdb.c | 57 +++++++-----------------------
> ----------
> 2 files changed, 14 insertions(+), 79 deletions(-)
>
> diff --git a/arch/cris/arch-v10/kernel/kgdb.c b/arch/cris/arch
> -v10/kernel/kgdb.c
> index 22d846b..dbd4ba8 100644
> --- a/arch/cris/arch-v10/kernel/kgdb.c
> +++ b/arch/cris/arch-v10/kernel/kgdb.c
> @@ -413,18 +413,6 @@ gdb_cris_strtol (const char *s, char **endptr,
> int base)
> }
>
> /********************************** Packet I/O
> ******************************/
> -/* Returns the integer equivalent of a hexadecimal character. */
> -static int
> -hex (char ch)
> -{
> - if ((ch >= 'a') && (ch <= 'f'))
> - return (ch - 'a' + 10);
> - if ((ch >= '0') && (ch <= '9'))
> - return (ch - '0');
> - if ((ch >= 'A') && (ch <= 'F'))
> - return (ch - 'A' + 10);
> - return (-1);
> -}
>
> /* Convert the memory, pointed to by mem into hexadecimal
> representation.
> Put the result in buf, and return a pointer to the last character
> @@ -455,22 +443,6 @@ mem2hex(char *buf, unsigned char *mem, int
> count)
> return (buf);
> }
>
> -/* Convert the array, in hexadecimal representation, pointed to by
> buf into
> - binary representation. Put the result in mem, and return a
> pointer to
> - the character after the last byte written. */
> -static unsigned char*
> -hex2mem (unsigned char *mem, char *buf, int count)
> -{
> - int i;
> - unsigned char ch;
> - for (i = 0; i < count; i++) {
> - ch = hex (*buf++) << 4;
> - ch = ch + hex (*buf++);
> - *mem++ = ch;
> - }
> - return (mem);
> -}
> -
> /* Put the content of the array, in binary representation, pointed
> to by buf
> into memory pointed to by mem, and return a pointer to the
> character after
> the last byte written.
> @@ -524,8 +496,8 @@ getpacket (char *buffer)
> buffer[count] = '\0';
>
> if (ch == '#') {
> - xmitcsum = hex (getDebugChar ()) << 4;
> - xmitcsum += hex (getDebugChar ());
> + xmitcsum = hex_to_bin(getDebugChar()) << 4;
> + xmitcsum += hex_to_bin(getDebugChar());
> if (checksum != xmitcsum) {
> /* Wrong checksum */
> putDebugChar ('-');
> @@ -760,7 +732,7 @@ handle_exception (int sigval)
> Each byte of register data is
> described by two hex digits.
> Success: OK
> Failure: void. */
> - hex2mem((char *)&cris_reg,
> &remcomInBuffer[1], sizeof(registers));
> + hex2bin((char *)&cris_reg,
> &remcomInBuffer[1], sizeof(registers));
> gdb_cris_strcpy (remcomOutBuffer,
> "OK");
> break;
>
> @@ -835,7 +807,7 @@ handle_exception (int sigval)
> int length =
> gdb_cris_strtol(lenptr+1, &dataptr, 16);
> if (*lenptr == ',' &&
> *dataptr == ':') {
> if
> (remcomInBuffer[0] == 'M') {
> - hex2mem(addr
> , dataptr + 1, length);
> + hex2bin(addr
> , dataptr + 1, length);
> }
> else /* X */ {
> bin2mem(addr
> , dataptr + 1, length);
> diff --git a/arch/cris/arch-v32/kernel/kgdb.c b/arch/cris/arch
> -v32/kernel/kgdb.c
> index b06813a..590c11b 100644
> --- a/arch/cris/arch-v32/kernel/kgdb.c
> +++ b/arch/cris/arch-v32/kernel/kgdb.c
> @@ -384,19 +384,11 @@ int getDebugChar(void);
> /* Serial port, writes one character. ETRAX 100 specific. from
> debugport.c */
> void putDebugChar(int val);
>
> -/* Returns the integer equivalent of a hexadecimal character. */
> -static int hex(char ch);
> -
> /* Convert the memory, pointed to by mem into hexadecimal
> representation.
> Put the result in buf, and return a pointer to the last character
> in buf (null). */
> static char *mem2hex(char *buf, unsigned char *mem, int count);
>
> -/* Convert the array, in hexadecimal representation, pointed to by
> buf into
> - binary representation. Put the result in mem, and return a
> pointer to
> - the character after the last byte written. */
> -static unsigned char *hex2mem(unsigned char *mem, char *buf, int
> count);
> -
> /* Put the content of the array, in binary representation, pointed
> to by buf
> into memory pointed to by mem, and return a pointer to
> the character after the last byte written. */
> @@ -547,7 +539,7 @@ write_register(int regno, char *val)
>
> if (regno >= R0 && regno <= ACR) {
> /* Consecutive 32-bit registers. */
> - hex2mem((unsigned char *)®.r0 + (regno - R0) *
> sizeof(unsigned int),
> + hex2bin((unsigned char *)®.r0 + (regno - R0) *
> sizeof(unsigned int),
> val, sizeof(unsigned int));
>
> } else if (regno == BZ || regno == VR || regno == WZ ||
> regno == DZ) {
> @@ -557,15 +549,15 @@ write_register(int regno, char *val)
> } else if (regno == PID) {
> /* 32-bit register. (Even though we already checked
> SRS and WZ, we cannot
> combine this with the EXS - SPC write since SRS
> and WZ have different size.) */
> - hex2mem((unsigned char *)®.pid, val,
> sizeof(unsigned int));
> + hex2bin((unsigned char *)®.pid, val,
> sizeof(unsigned int));
>
> } else if (regno == SRS) {
> /* 8-bit register. */
> - hex2mem((unsigned char *)®.srs, val,
> sizeof(unsigned char));
> + hex2bin((unsigned char *)®.srs, val,
> sizeof(unsigned char));
>
> } else if (regno >= EXS && regno <= SPC) {
> /* Consecutive 32-bit registers. */
> - hex2mem((unsigned char *)®.exs + (regno - EXS) *
> sizeof(unsigned int),
> + hex2bin((unsigned char *)®.exs + (regno - EXS) *
> sizeof(unsigned int),
> val, sizeof(unsigned int));
>
> } else if (regno == PC) {
> @@ -574,7 +566,7 @@ write_register(int regno, char *val)
>
> } else if (regno >= S0 && regno <= S15) {
> /* 32-bit registers. */
> - hex2mem((unsigned char *)&sreg.s0_0 + (reg.srs * 16 *
> sizeof(unsigned int)) + (regno - S0) * sizeof(unsigned int), val,
> sizeof(unsigned int));
> + hex2bin((unsigned char *)&sreg.s0_0 + (reg.srs * 16 *
> sizeof(unsigned int)) + (regno - S0) * sizeof(unsigned int), val,
> sizeof(unsigned int));
> } else {
> /* Non-existing register. */
> status = E05;
> @@ -630,19 +622,6 @@ read_register(char regno, unsigned int *valptr)
> }
>
> /********************************** Packet I/O
> ******************************/
> -/* Returns the integer equivalent of a hexadecimal character. */
> -static int
> -hex(char ch)
> -{
> - if ((ch >= 'a') && (ch <= 'f'))
> - return (ch - 'a' + 10);
> - if ((ch >= '0') && (ch <= '9'))
> - return (ch - '0');
> - if ((ch >= 'A') && (ch <= 'F'))
> - return (ch - 'A' + 10);
> - return -1;
> -}
> -
> /* Convert the memory, pointed to by mem into hexadecimal
> representation.
> Put the result in buf, and return a pointer to the last character
> in buf (null). */
> @@ -689,22 +668,6 @@ mem2hex_nbo(char *buf, unsigned char *mem, int
> count)
> return buf;
> }
>
> -/* Convert the array, in hexadecimal representation, pointed to by
> buf into
> - binary representation. Put the result in mem, and return a
> pointer to
> - the character after the last byte written. */
> -static unsigned char*
> -hex2mem(unsigned char *mem, char *buf, int count)
> -{
> - int i;
> - unsigned char ch;
> - for (i = 0; i < count; i++) {
> - ch = hex (*buf++) << 4;
> - ch = ch + hex (*buf++);
> - *mem++ = ch;
> - }
> - return mem;
> -}
> -
> /* Put the content of the array, in binary representation, pointed
> to by buf
> into memory pointed to by mem, and return a pointer to the
> character after
> the last byte written.
> @@ -763,8 +726,8 @@ getpacket(char *buffer)
> buffer[count] = 0;
>
> if (ch == '#') {
> - xmitcsum = hex(getDebugChar()) << 4;
> - xmitcsum += hex(getDebugChar());
> + xmitcsum = hex_to_bin(getDebugChar()) << 4;
> + xmitcsum += hex_to_bin(getDebugChar());
> if (checksum != xmitcsum) {
> /* Wrong checksum */
> putDebugChar('-');
> @@ -1306,9 +1269,9 @@ handle_exception(int sigval)
> Success: OK
> Failure: void. */
> /* General and special registers. */
> - hex2mem((char *)®,
> &input_buffer[1], sizeof(registers));
> + hex2bin((char *)®,
> &input_buffer[1], sizeof(registers));
> /* Support registers. */
> - hex2mem((char *)&sreg + (reg.srs *
> 16 * sizeof(unsigned int)),
> + hex2bin((char *)&sreg + (reg.srs *
> 16 * sizeof(unsigned int)),
> &input_buffer[1] +
> sizeof(registers),
> 16 * sizeof(unsigned int));
> gdb_cris_strcpy(output_buffer,
> "OK");
> @@ -1389,7 +1352,7 @@ handle_exception(int sigval)
> int len =
> gdb_cris_strtol(lenptr+1, &dataptr, 16);
> if (*lenptr == ',' &&
> *dataptr == ':') {
> if (input_buffer[0]
> == 'M') {
> - hex2mem(addr
> , dataptr + 1, len);
> + hex2bin(addr
> , dataptr + 1, len);
> } else /* X */ {
> bin2mem(addr
> , dataptr + 1, len);
> }
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Jesper Nilsson <jesper.nilsson@axis.com> |
|---|---|
| Date | 2015-09-30 17:30 +0200 |
| Message-ID | <qeruq-w4-13@gated-at.bofh.it> |
| In reply to | #1236414 |
On Wed, Sep 30, 2015 at 04:46:53PM +0200, Andy Shevchenko wrote:
> On Tue, 2013-06-04 at 11:51 +0300, Andy Shevchenko wrote:
> > There are kernel native helpers to convert hex ascii to the binary
> > format:
> > hex_to_bin() and hex2bin(). Thus, no need to reimplement them
> > customly.
> >
>
> No one is interested in this?
Hm, dunno why, but obviously I've missed these patches,
and I can't find them on my main mailaccount either.
Anyways, I found them on a secondary account, and have
added them to the CRIS linux-next tree.
Thanks!
/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@axis.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
|---|---|
| Date | 2015-09-30 17:40 +0200 |
| Message-ID | <qerE6-Hh-21@gated-at.bofh.it> |
| In reply to | #1236437 |
On Wed, 2015-09-30 at 17:22 +0200, Jesper Nilsson wrote: > On Wed, Sep 30, 2015 at 04:46:53PM +0200, Andy Shevchenko wrote: > > On Tue, 2013-06-04 at 11:51 +0300, Andy Shevchenko wrote: > > > There are kernel native helpers to convert hex ascii to the > > > binary > > > format: > > > hex_to_bin() and hex2bin(). Thus, no need to reimplement them > > > customly. > > > > > > > No one is interested in this? > > Hm, dunno why, but obviously I've missed these patches, > and I can't find them on my main mailaccount either. > > Anyways, I found them on a secondary account, and have > added them to the CRIS linux-next tree. Just noticed that it was along time ago and currently it might produce compile warnings or errors since now hex2bin is prefixed by __must_check. Would you like me to send v2? > > Thanks! > > /^JN - Jesper Nilsson -- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Jesper Nilsson <jesper@jni.nu> |
|---|---|
| Date | 2015-09-30 20:10 +0200 |
| Message-ID | <qetZg-4bK-23@gated-at.bofh.it> |
| In reply to | #1236445 |
On Wed, Sep 30, 2015 at 06:37:51PM +0300, Andy Shevchenko wrote:
> On Wed, 2015-09-30 at 17:22 +0200, Jesper Nilsson wrote:
> > On Wed, Sep 30, 2015 at 04:46:53PM +0200, Andy Shevchenko wrote:
> > > On Tue, 2013-06-04 at 11:51 +0300, Andy Shevchenko wrote:
> > > > There are kernel native helpers to convert hex ascii to the
> > > > binary
> > > > format:
> > > > hex_to_bin() and hex2bin(). Thus, no need to reimplement them
> > > > customly.
> > > >
> > >
> > > No one is interested in this?
> >
> > Hm, dunno why, but obviously I've missed these patches,
> > and I can't find them on my main mailaccount either.
> >
> > Anyways, I found them on a secondary account, and have
> > added them to the CRIS linux-next tree.
>
> Just noticed that it was along time ago and currently it might produce
> compile warnings or errors since now hex2bin is prefixed by
> __must_check.
>
> Would you like me to send v2?
Unless you've tweaked them more since you sent them,
it shouldn't be necessary, the patches applied cleanly.
Those (most) files in CRIS are not touched very often... :-)
> Andy Shevchenko <andriy.shevchenko@linux.intel.com>
/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper_at_jni.nu
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Jesper Nilsson <jesper.nilsson@axis.com> |
|---|---|
| Date | 2015-09-30 20:20 +0200 |
| Message-ID | <qeu8V-4ns-11@gated-at.bofh.it> |
| In reply to | #1236607 |
On Wed, Sep 30, 2015 at 08:02:34PM +0200, Jesper Nilsson wrote:
> On Wed, Sep 30, 2015 at 06:37:51PM +0300, Andy Shevchenko wrote:
> > On Wed, 2015-09-30 at 17:22 +0200, Jesper Nilsson wrote:
> > > On Wed, Sep 30, 2015 at 04:46:53PM +0200, Andy Shevchenko wrote:
> > > > On Tue, 2013-06-04 at 11:51 +0300, Andy Shevchenko wrote:
> > > > > There are kernel native helpers to convert hex ascii to the
> > > > > binary
> > > > > format:
> > > > > hex_to_bin() and hex2bin(). Thus, no need to reimplement them
> > > > > customly.
> > > > >
> > > >
> > > > No one is interested in this?
> > >
> > > Hm, dunno why, but obviously I've missed these patches,
> > > and I can't find them on my main mailaccount either.
> > >
> > > Anyways, I found them on a secondary account, and have
> > > added them to the CRIS linux-next tree.
> >
> > Just noticed that it was along time ago and currently it might produce
> > compile warnings or errors since now hex2bin is prefixed by
> > __must_check.
> >
> > Would you like me to send v2?
>
> Unless you've tweaked them more since you sent them,
> it shouldn't be necessary, the patches applied cleanly.
> Those (most) files in CRIS are not touched very often... :-)
... and now I saw your v2, I'll take that instead since
you already fixed the __must_check problems.
Thanks a lot!
> > Andy Shevchenko <andriy.shevchenko@linux.intel.com>
/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@axis.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web