public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Martin Dalecki <dalecki@evision-ventures.com>
To: Pavel Machek <pavel@suse.cz>
Cc: Andre Hedrick <andre@linuxdiskcert.org>,
	Vojtech Pavlik <vojtech@suse.cz>, Jens Axboe <axboe@suse.de>,
	kernel list <linux-kernel@vger.kernel.org>
Subject: Re: another IDE cleanup: kill duplicated code
Date: Wed, 13 Feb 2002 12:11:45 +0100	[thread overview]
Message-ID: <3C6A49F1.5000500@evision-ventures.com> (raw)
In-Reply-To: <3C6A418A.8040105@evision-ventures.com> <Pine.LNX.4.10.10202130228180.1479-100000@master.linux-ide.org> <20020213105625.GI32687@atrey.karlin.mff.cuni.cz>

Pavel Machek wrote:

>Hi!
>
>>>Well, after looking at yours code close engough I have one advice for 
>>>you as well: LEARN C.
>>>
>>I specialize in storage, and C is self taught.
>>
>
>Okay, few things to keep in mind:
>
>*) cut-copy-paste is bad. If you fix error in one copy, it is _very_
>easy not to fix it in other copies.
>
>*) void *'s and casts are bad. They hide real errors. If you have 
>
>struct foo {} bar;
>
>and want 
>
>bar * baz;
>
>later;
>
>You can write it as struct foo * baz. That will make type checks
>actually work and save you lot of casts. 
>
>*) hungarian notation is considered evil in kernel.
>
>struct bla_s {} bla_t;
>
>*is* evil -- why have two types when one is enough? In kernel land,
>right way is to do 
>
>struct bla {};
>
>and then use "struct bla" everywhere you'd use bla_t. It might be
>slightly longer, but it helps you with casts (above) and everyone can
>see what is going on.
>

Add the following:
Silly code like that:

      ide_add_setting(drive,  "bios_cyl",             
SETTING_RW,            
        ide_add_setting(drive,  "bios_sect",            
SETTING_RW,            
        ide_add_setting(drive,  "bswap",                
SETTING_READ,          
        ide_add_setting(drive,  "multcount",            id ? SETTING_RW 
: SETTIN

Can be replaced with somthing along:

struct resource_record {
} rr = {
  { asjdkasdh, asdjhasjkd, asdjhjaskd }
....
 { asdjaksd, adsjaksd, asdhjasdhasd }
}


....


for (i; i < nuofmemebers(rr); ++i )
{
    ide_add_setting(rr[i]);
}

to save you *a lot* of push stack call function and so on...





  reply	other threads:[~2002-02-13 11:12 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-11 22:11 another IDE cleanup: kill duplicated code Pavel Machek
2002-02-12 10:52 ` Martin Dalecki
2002-02-12 12:28   ` Vojtech Pavlik
2002-02-12 12:45     ` Martin Dalecki
2002-02-12 12:57       ` Vojtech Pavlik
2002-02-12 13:17         ` Martin Dalecki
2002-02-12 13:43           ` Vojtech Pavlik
2002-02-12 13:58             ` Martin Dalecki
2002-02-12 14:42               ` Vojtech Pavlik
2002-02-12 15:23                 ` Martin Dalecki
2002-02-12 15:28                   ` Vojtech Pavlik
2002-02-12 15:35                     ` Martin Dalecki
2002-02-12 16:56                       ` Jens Axboe
2002-02-13  5:50                     ` Andre Hedrick
2002-02-13  7:28                       ` Vojtech Pavlik
2002-02-13 10:53                         ` Martin Dalecki
2002-02-13 10:35                       ` Martin Dalecki
2002-02-13 10:29                         ` Andre Hedrick
2002-02-13 10:56                           ` Pavel Machek
2002-02-13 11:11                             ` Martin Dalecki [this message]
2002-02-13 11:25                               ` Matthias Andree
2002-02-12 18:28                   ` Andreas Dilger
2002-02-13 12:35                     ` Martin Dalecki
2002-02-13 16:24                       ` Andreas Dilger
2002-02-13 16:31                         ` Martin Dalecki
2002-02-12 16:57             ` Jens Axboe
2002-02-13  5:46               ` Andre Hedrick
2002-02-13  6:42                 ` Jens Axboe
2002-02-13  7:30                   ` Andre Hedrick
2002-02-13  7:47                     ` Jens Axboe
2002-02-13  7:44                       ` Andre Hedrick
2002-02-13  7:58                         ` Jens Axboe
2002-02-13 20:38                         ` Rik van Riel
2002-02-13 11:01                       ` Martin Dalecki
2002-02-13 11:03                         ` Jens Axboe
2002-02-13 11:27                           ` Vojtech Pavlik
2002-02-13  7:05                 ` Vojtech Pavlik
2002-02-12 12:50     ` Martin Dalecki
2002-02-12 19:19   ` Roger Larsson
2002-02-13 10:56     ` Martin Dalecki
2002-02-12 20:03   ` Andrew Morton
2002-02-13 10:47     ` Martin Dalecki
2002-02-13 18:52       ` Andrew Morton
2002-02-14 10:04         ` Martin Dalecki
2002-02-14 10:19           ` Andrew Morton
2002-02-13  5:52 ` Andre Hedrick
2002-02-13  7:30   ` Vojtech Pavlik
2002-02-13  7:27     ` Andre Hedrick
2002-02-13 10:39       ` Vojtech Pavlik
2002-02-13 10:46         ` Andre Hedrick
2002-02-13 11:26           ` Vojtech Pavlik
2002-02-13 11:26             ` Andre Hedrick
2002-02-13 11:03   ` Daniel Egger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3C6A49F1.5000500@evision-ventures.com \
    --to=dalecki@evision-ventures.com \
    --cc=andre@linuxdiskcert.org \
    --cc=axboe@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@suse.cz \
    --cc=vojtech@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox