From patchwork Wed Oct 8 04:56:20 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mitch Davis X-Patchwork-Id: 3257 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id E42FADDE23 for ; Wed, 8 Oct 2008 15:58:48 +1100 (EST) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.68 #1 (Red Hat Linux)) id 1KnR5z-0003CX-1C; Wed, 08 Oct 2008 04:56:23 +0000 Received: from wa-out-1112.google.com ([209.85.146.181]) by bombadil.infradead.org with esmtp (Exim 4.68 #1 (Red Hat Linux)) id 1KnR5x-000369-Cx for linux-mtd@lists.infradead.org; Wed, 08 Oct 2008 04:56:21 +0000 Received: by wa-out-1112.google.com with SMTP id v33so2144081wah.2 for ; Tue, 07 Oct 2008 21:56:20 -0700 (PDT) Received: by 10.114.123.19 with SMTP id v19mr8446757wac.168.1223441780372; Tue, 07 Oct 2008 21:56:20 -0700 (PDT) Received: by 10.114.110.7 with HTTP; Tue, 7 Oct 2008 21:56:20 -0700 (PDT) Message-ID: <8956d4ca0810072156w4fcdf1barb2d740e10d97c380@mail.gmail.com> Date: Wed, 8 Oct 2008 15:56:20 +1100 From: "Mitch Davis" To: "Mike Frysinger" Subject: Re: mtd-utils: fec.c uses bcopy() In-Reply-To: <8bd0f97a0810071938s3366f340redc61e87e6b020b8@mail.gmail.com> MIME-Version: 1.0 Content-Disposition: inline References: <8956d4ca0810071727i63554837k923a0091b3ef9bd0@mail.gmail.com> <8bd0f97a0810071802t52bc60fs6a230e30d7ed1c8f@mail.gmail.com> <8956d4ca0810071936p21240f4dn89e161c6ef07847c@mail.gmail.com> <8bd0f97a0810071938s3366f340redc61e87e6b020b8@mail.gmail.com> X-Google-Sender-Auth: bec07e2e32eec632 X-Spam-Score: 0.0 (/) Cc: linux-mtd@lists.infradead.org X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-mtd-bounces@lists.infradead.org Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Hi Mike, On Wed, Oct 8, 2008 at 1:38 PM, Mike Frysinger wrote: > On Tue, Oct 7, 2008 at 22:36, Mitch Davis wrote: >> On Wed, Oct 8, 2008 at 12:02 PM, Mike Frysinger wrote: >>> On Tue, Oct 7, 2008 at 20:27, Mitch Davis wrote: >>>> fec.c in mtd-utils uses bcopy(), so mtd-utils doesn't compile for me. >>>> I'd like to fix this. >>>> >>>> - Should I rewrite fec.c so it uses memcpy instead? >>> >>> a simple sed can fix the code as the only difference between bcopy() >>> and memcpy() is the argument order. ifdef's are pointless/ugly in >>> this case. >> >> I agree. I've attached a diff that makes this change. >> >> It compiles with no warnings, but I have no way of testing it. Any >> suggestions what to do next? > > use `git diff` to generate a diff instead of posting the entire file > as an attachment. The diff I attached previously was generated by git diff from HEAD. It was not the entire file. > really you should use git to send the patch Do you mean a git push? I'd need an account for that on infradead, no? A pointer to some instructions would be great. Note, two of the three links to informative articles on the MTD GIT HOWTO page are broken. If you don't mean a git push, please tell me what you mean. Hmm, I hope the following inline pasting doesn't break tabs, etc. Thanks for your help, Mitch. [PATCH] [MTD] mtd-utils: fec.c: bzero->memset, bcopy->memcpy, bcmp->memcmp This patch alters fec.c so it does not use the deprecated bzero, bcopy and bcmp functions. This can help on platforms that do not have these functions. From: Mitch Davis Signed-off-by: Mitch Davis } else @@ -751,10 +738,10 @@ void fec_encode_linear(struct fec_parms *code, gf *src, gf *fec, int index, int sz /= 2 ; if (index < k) - bcopy(src + (index * sz), fec, sz*sizeof(gf) ) ; + memcpy(fec, src + (index * sz), sz*sizeof(gf) ) ; else if (index < code->n) { p = &(code->enc_matrix[index*k] ); - bzero(fec, sz*sizeof(gf)); + memset(fec, '\0', sz*sizeof(gf)); for (i = 0; i < k ; i++) addmul(fec, src + (i * sz), p[i], sz ) ; } else @@ -814,12 +801,12 @@ build_decode_matrix(struct fec_parms *code, gf *pkt[], int index[]) for (i = 0, p = matrix ; i < k ; i++, p += k ) { #if 1 /* this is simply an optimization, not very useful indeed */ if (index[i] < k) { - bzero(p, k*sizeof(gf) ); + memset(p, '\0', k*sizeof(gf) ); p[i] = 1 ; } else #endif if (index[i] < code->n ) - bcopy( &(code->enc_matrix[index[i]*k]), p, k*sizeof(gf) ); + memcpy(p, &(code->enc_matrix[index[i]*k]), k*sizeof(gf) ); else { fprintf(stderr, "decode: invalid index %d (max %d)\n", index[i], code->n - 1 ); @@ -870,7 +857,7 @@ fec_decode(struct fec_parms *code, gf *pkt[], int index[], int sz) for (row = 0 ; row < k ; row++ ) { if (index[row] >= k) { new_pkt[row] = my_malloc (sz * sizeof (gf), "new pkt buffer" ); - bzero(new_pkt[row], sz * sizeof(gf) ) ; + memset(new_pkt[row], '\0', sz * sizeof(gf) ) ; for (col = 0 ; col < k ; col++ ) addmul(new_pkt[row], pkt[col], m_dec[row*k + col], sz) ; } @@ -880,7 +867,7 @@ fec_decode(struct fec_parms *code, gf *pkt[], int index[], int sz) */ for (row = 0 ; row < k ; row++ ) { if (index[row] >= k) { - bcopy(new_pkt[row], pkt[row], sz*sizeof(gf)); + memcpy(pkt[row], new_pkt[row], sz*sizeof(gf)); free(new_pkt[row]); } } diff --git a/fec.c b/fec.c index 09e8453..6d9020f 100644 --- a/fec.c +++ b/fec.c @@ -47,19 +47,6 @@ #include /* - * compatibility stuff - */ -#ifdef MSDOS /* but also for others, e.g. sun... */ -#define NEED_BCOPY -#define bcmp(a,b,n) memcmp(a,b,n) -#endif - -#ifdef NEED_BCOPY -#define bcopy(s, d, siz) memcpy((d), (s), (siz)) -#define bzero(d, siz) memset((d), '\0', (siz)) -#endif - -/* * stuff used for testing purposes only */ @@ -433,7 +420,7 @@ invert_mat(gf *src, int k) gf *id_row = NEW_GF_MATRIX(1, k); gf *temp_row = NEW_GF_MATRIX(1, k); - bzero(id_row, k*sizeof(gf)); + memset(id_row, '\0', k*sizeof(gf)); DEB( pivloops=0; pivswaps=0 ; /* diagnostic */ ) /* * ipiv marks elements already used as pivots. @@ -513,7 +500,7 @@ found_piv: * we can optimize the addmul). */ id_row[icol] = 1; - if (bcmp(pivot_row, id_row, k*sizeof(gf)) != 0) { + if (memcmp(pivot_row, id_row, k*sizeof(gf)) != 0) { for (p = src, ix = 0 ; ix < k ; ix++, p += k ) { if (ix != icol) { c = p[icol] ; @@ -704,7 +691,7 @@ fec_new(int k, int n) /* * the upper matrix is I so do not bother with a slow multiply */ - bzero(retval->enc_matrix, k*k*sizeof(gf) ); + memset(retval->enc_matrix, '\0', k*k*sizeof(gf) ); for (p = retval->enc_matrix, col = 0 ; col < k ; col++, p += k+1 ) *p = 1 ; free(tmp_m); @@ -731,10 +718,10 @@ fec_encode(struct fec_parms *code, gf *src[], gf *fec, int index, int sz) sz /= 2 ; if (index < k) - bcopy(src[index], fec, sz*sizeof(gf) ) ; + memcpy(fec, src[index], sz*sizeof(gf) ) ; else if (index < code->n) { p = &(code->enc_matrix[index*k] ); - bzero(fec, sz*sizeof(gf)); + memset(fec, '\0', sz*sizeof(gf)); for (i = 0; i < k ; i++) addmul(fec, src[i], p[i], sz ) ;