Messages in this thread | | | From | "Bob Pearson" <> | Subject | RE: [patch v5 resending 0/8] Add slicing-by-8 to crc32 | Date | Fri, 12 Aug 2011 12:01:59 -0500 |
| |
> > > The changes to gen_crc32table.c looks random, where did this come from > > (in v5 6/8): > > -static uint32_t crc32table_le[4][LE_TABLE_SIZE]; > > -static uint32_t crc32table_be[4][BE_TABLE_SIZE]; > > +static uint32_t crc32table_le[4][256]; > > +static uint32_t crc32table_be[4][256]; > > The table was declared as shown but is passed from main to output_table as > "uint32_t table[4][256]" > > This causes a compiler warning because the types don't match. As it happens > the program prints out correct results because rows other than 0 are only > used of the column size is 256. I interpreted LE_TABLE_SIZE as the desired > size of the output table (which it is) and let the working table in > gen_crc32table.c be dimensioned at 256. I suppose that one could have > changed the dimension in output_table as well. >
One more point I forgot when I wrote this. Output_table is used for both LE and BE tables which could have different values for ?E_TABLE_SIZE. There is no sensible choice for changing the declaration in output_table to try to match the various table sizes. It is much simpler to just make the tables "by 256" and leave it at that. Since this is a build time resource there is no penalty for the kernel itself.
| |