svn commit: r233091 - in projects/nand: sbin/fdisk sys/sys
Grzegorz Bernacki
gjb at semihalf.com
Mon Mar 19 01:57:49 UTC 2012
W dniu 2012-03-18 04:57, Bruce Evans pisze:
> On Sat, 17 Mar 2012, Pawel Jakub Dawidek wrote:
>
>> On Sat, Mar 17, 2012 at 05:10:15PM +0000, Grzegorz Bernacki wrote:
>>> Log:
>>> Add ioctl and structures for accessing nand disk devices.
>>
>> Grzegorz, this is really wrong way to do it. Neither geom_dev nor
>> geom_disk are the places to add NAND specific ioctls.
>> ...
>
> This also has some style bugs.
>
>>> Modified: projects/nand/sys/sys/disk.h
>>> ==============================================================================
>>>
>>> --- projects/nand/sys/sys/disk.h Sat Mar 17 16:40:15 2012
>>> (r233090)
>>> +++ projects/nand/sys/sys/disk.h Sat Mar 17 17:10:14 2012
>>> (r233091)
>>> @@ -116,6 +116,32 @@ void disk_err(struct bio *bp, const char
>>> * This should be a multiple of the sector size.
>>> */
>>>
>>> +#define DIOCNOOBSIZE _IOR('d', 141, u_int) /* Get oob size */
>>> + /*-
>>> + * Get the OOB area size of NAND flash device.
>>> + */
>>> +
>
> In KNF, there is a tab after #define. This rule was followed by all
> previous #define's in this file.
>
> In KNF, comments precede what they describe (except for short ones to
> the right of definitions). This rule was broken by almost all previous
> comments in this file, and the new code is mostly bug for bug compatible
> with that :-).
>
> In KNF, there are usually no verbose descriptions on #define's like
> this. Such comments belong in man pages. Such comments make the
> actual definitions hard to see. Here the density of code:comments is
> about 1/8. This rule was broken by almost all previous comments in
> this file, and the new code is bug for bug compatible with that. Of
> course, man pages are bug for bug compatible with this, and none even
> mentions the newer DIOCG* ioctls. Even the ~10 year old DIOCGMEDIASIZE
> ioctl is not documented in any man page. :-(
>
> The short comments to the right of the definitions are bogus when there
> is a verbose one after the definitions. Most old definitions have this
> bug. All new definitions have this bug.
>
> Comments beginning with "/*-" have special meanings. The "-" just
> tells indent(1) not to reformat the comment. Its typical use is to
> prevent formatting of comments that are hand-formatted with bullet
> points. There is one such comment in this file, and, correctly,
> only this one had the "-" markup. None of the new comments has fancy
> formatting, so the "-" in all of them is bogus. "/*-" is also
> conventionally abused to start copyright comments. Copyright comments
> normally have bullet points, and even if they didn't then their vendor
> might not want them reformatted, so they must start with "/*-" or
> alternatively "/**" anyway, so the convention does little except
> require correct style for them.
>
>
>>> +#define DIOCNBLKSIZE _IOR('d', 142, u_int) /* Get block size */
>>> + /* -
>>> + * Get the block size of NAND flash device.
>>> + */
>
> Here the "-" in the comment is just noise.
>
>>> +
>>> +struct nand_oob_request {
>>> + off_t offset; /* offset in bytes, page-aligned */
>>> + off_t length; /* length */
>>> + void * ubuf; /* buffer supplied by user */
>>> +};
>
> In KNF, #defines are placed all together, without type declarations in
> the middle.
>
> In KNF, struct members are only indented by 1 tab (or 1 tab plus 1
> space to line up after a '*') if possible. When this is done, comments
> to the right of struct members are normally started in column 40.
>
> In KNF, the final '*' for pointers is attached to the name of the
> variable
> with no space between it and the name, not to the type with space[s]
> between
> it and the rest of the type.
>
>>> +
>>> +#define DIOCNREADOOB _IOW('d', 143, struct
>>> nand_oob_request) /* Read OOB area */
>
> Now there is a tab after #define.
>
> In KNF, the maximum line length is 80. Here it is longer, with the help
> of a verbose struct tag name. Too-long lines are especially bogus when
> there is also a verbose comment about the same thing. Even if you don't
> write man pages in the comments, a comment that won't fit in 80 columns
> is sometimes needed, so it must be put on a separate line, but it is
> hard to format the extra lines for this nicely.
>
>>> + /*-
>>> + * Read page OOB area from NAND flash device.
>>> + */
>>> +
>>> +#define DIOCNWRITEOOB _IOW('d', 144, struct
>>> nand_oob_request) /* Write OOB area */
>
> Another with a correctly formatted #define and a too-long line.
>
>>> + /*-
>>> + * Write page OOB area to NAND flash device.
>>> + */
>>> +
>>> #define DIOCGPHYSPATH _IOR('d', 141, char[MAXPATHLEN])
>>> /*
>>> * Get a string defining the physical path for a given provider.
>
> Bruce
Thanks for comments. We gonna cleanup this code.
regards,
grzesiek
More information about the svn-src-projects
mailing list