From 08141db61a7a947b701d06aa5c90cd825c55e350 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 4 May 2018 14:24:51 +0200 Subject: gometalinter: enable line length checking 120 columns looks like a reasonable limit and requires few changes to existing code. Update #538 --- pkg/csource/csource.go | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) (limited to 'pkg/csource/csource.go') diff --git a/pkg/csource/csource.go b/pkg/csource/csource.go index ddc108959..6ac68464f 100644 --- a/pkg/csource/csource.go +++ b/pkg/csource/csource.go @@ -323,20 +323,7 @@ func (ctx *context) generateCalls(p prog.ExecProg) ([]string, []uint64) { switch arg.Kind { case prog.ExecArgCsumInet: csumSeq++ - fmt.Fprintf(w, "\tstruct csum_inet csum_%d;\n", csumSeq) - fmt.Fprintf(w, "\tcsum_inet_init(&csum_%d);\n", csumSeq) - for i, chunk := range arg.Chunks { - switch chunk.Kind { - case prog.ExecArgCsumChunkData: - fmt.Fprintf(w, "\tNONFAILING(csum_inet_update(&csum_%d, (const uint8_t*)0x%x, %d));\n", csumSeq, chunk.Value, chunk.Size) - case prog.ExecArgCsumChunkConst: - fmt.Fprintf(w, "\tuint%d_t csum_%d_chunk_%d = 0x%x;\n", chunk.Size*8, csumSeq, i, chunk.Value) - fmt.Fprintf(w, "\tcsum_inet_update(&csum_%d, (const uint8_t*)&csum_%d_chunk_%d, %d);\n", csumSeq, csumSeq, i, chunk.Size) - default: - panic(fmt.Sprintf("unknown checksum chunk kind %v", chunk.Kind)) - } - } - fmt.Fprintf(w, "\tNONFAILING(*(uint16_t*)0x%x = csum_inet_digest(&csum_%d));\n", copyin.Addr, csumSeq) + ctx.generateCsumInet(w, copyin.Addr, arg, csumSeq) default: panic(fmt.Sprintf("unknown csum kind %v", arg.Kind)) } @@ -409,6 +396,27 @@ func (ctx *context) generateCalls(p prog.ExecProg) ([]string, []uint64) { return calls, p.Vars } +func (ctx *context) generateCsumInet(w *bytes.Buffer, addr uint64, arg prog.ExecArgCsum, csumSeq int) { + fmt.Fprintf(w, "\tstruct csum_inet csum_%d;\n", csumSeq) + fmt.Fprintf(w, "\tcsum_inet_init(&csum_%d);\n", csumSeq) + for i, chunk := range arg.Chunks { + switch chunk.Kind { + case prog.ExecArgCsumChunkData: + fmt.Fprintf(w, "\tNONFAILING(csum_inet_update(&csum_%d, (const uint8_t*)0x%x, %d));\n", + csumSeq, chunk.Value, chunk.Size) + case prog.ExecArgCsumChunkConst: + fmt.Fprintf(w, "\tuint%d_t csum_%d_chunk_%d = 0x%x;\n", + chunk.Size*8, csumSeq, i, chunk.Value) + fmt.Fprintf(w, "\tcsum_inet_update(&csum_%d, (const uint8_t*)&csum_%d_chunk_%d, %d);\n", + csumSeq, csumSeq, i, chunk.Size) + default: + panic(fmt.Sprintf("unknown checksum chunk kind %v", chunk.Kind)) + } + } + fmt.Fprintf(w, "\tNONFAILING(*(uint16_t*)0x%x = csum_inet_digest(&csum_%d));\n", + addr, csumSeq) +} + func (ctx *context) constArgToStr(arg prog.ExecArgConst) string { mask := (uint64(1) << (arg.Size * 8)) - 1 v := arg.Value & mask -- cgit mrf-deployment