update and power-saving harddisks ...

Jan Gyselinck (JAN.GYSELINCK@student.kuleuven.ac.be)
Wed, 15 Apr 1998 19:49:43 +0200 (W. Europe Daylight Time)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--24676490-32208-892662583=:-445905
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi

I know, i know, this is not kernel related (but I do get used to ya
people, I don't know any other mailinglist that are more appropriat,
anyway, flame me, here it comes ...)

Someone among u people asked for an update daemon that supported harddisks
that spinned down. I'm not a great C programmer, I just like cut 'n
paste, so I merged some code from proc-ps in update.c.

It checks if the irq-count of interrupt 14 (normally your first HD
controller, I hope you don't have two HD's on it ...) has been changed or
not. If it has not been changed, update will wait 1 hour (default,
changeable by commandline) until it flushes the buffers. If the
irq-count changes in the mean time, it'll start flushing again at the
normal rate. I run it, seems fine to me, now it's time you people try it
....

(note, it's updated 1.3, you don't need anything else, just compile with
any option you want (i hope ...) and run it ...)

Jan Gyselinck

--24676490-32208-892662583=:-445905
Content-Type: APPLICATION/octet-stream; name="update.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.WNT.3.96.980415194943.-445905D@IPV26052.cc.kuleuven.ac.be>
Content-Description:

LyogLSotIG1vZGU6IGM7IGMtZmlsZS1zdHlsZTogIkJTRCI7IC0qLQogKgog
KiBVcGRhdGUgRGFlbW9uIGZvciBMaW51eCAoYW5kIHBvc3NpYmx5IG90aGVy
IFVuaXhlbikuCiAqIENvcHlyaWdodCAoYykgMTk5NiwgMTk5NyBUb3JzdGVu
IFBvdWxpbi4KICoKICogQXByaWwgdGhlIDExdGgsIDE5OTggSEQtc3BpbmRv
d24gc3VwcG9ydCBieSBKYW4gR3lzZWxpbmNrIChsZWN0b3JAZGRzLm5sKQog
KiBQcm9jZWR1cmUgZ2V0X2lycSBoYWNrZWQgb3V0IG9mIHByb2Nwcy0xLjIu
NQogKiAodGhhdCB2ZXJzaW9uIHdhcyBtYWludGFpbmVkIGJ5IE1pY2hhZWwg
Sy4gSm9obnNvbiA8am9obnNvbm1AcmVkaGF0LmNvbT4pCiAqIGFuZCBtb2Rp
ZmllZCB1cGRhdGUgdG8gY2hlY2sgd2hldGhlciBoYXJkZGlzayBhY3Rpdml0
eSBvY2N1cmVkLCBhbmQgd2hldGhlcgogKiBpdCBzaG91bGQgZG8gbm9ybWFs
IGZsdXNoaW5nIG9yIGRlbGF5ZWQgZmx1c2hpbmcKICoKICogIFRoaXMgcHJv
Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IgbW9kaWZ5CiAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQog
KiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp
b24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQogKiAgYW55IGxhdGVyIHZlcnNp
b24uCiAqCiAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCiAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAqICBHTlUgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqICBGb3VuZGF0
aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzks
IFVTQS4KICoKICogJFJDU2ZpbGU6IHVwZGF0ZS5jLHYgJAogKiAkQXV0aG9y
OiB0b3JzdGVuICQKICogJERhdGU6IDE5OTcvMDIvMTMgMTc6MzI6NDEgJAog
KiAkUmV2aXNpb246IDEuMyAkCiAqLwoKI2luY2x1ZGUgPHN0ZGlvLmg+CiNp
bmNsdWRlIDx1bmlzdGQuaD4KI2luY2x1ZGUgPGxpbWl0cy5oPgojaW5jbHVk
ZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzaWduYWwuaD4KCiNpbmNsdWRlIDxz
dHJpbmcuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CiNpbmNsdWRlIDxmY250bC5o
PgojaW5jbHVkZSA8dGltZS5oPgoKI2RlZmluZSBCQURfT1BFTl9NRVNTQUdF
CQkJCQlcCiJFcnJvcjogL3Byb2MgbXVzdCBiZSBtb3VudGVkXG4iCQkJCVwK
IiAgVG8gbW91bnQgL3Byb2MgYXQgYm9vdCB5b3UgbmVlZCBhbiAvZXRjL2Zz
dGFiIGxpbmUgbGlrZTpcbiIJXAoiICAgICAgL3Byb2MgICAvcHJvYyAgIHBy
b2MgICAgZGVmYXVsdHNcbiIJCQlcCiIgIEluIHRoZSBtZWFudGltZSwgbW91
bnQgL3Byb2MgL3Byb2MgLXQgcHJvY1xuIgoKI2RlZmluZSBJUlFfRklMRSAg
Ii9wcm9jL2ludGVycnVwdHMiCgovKiBUaGlzIG1hY3JvIG9wZW5zIEZJTEUg
b25seSBpZiBuZWNlc3NhcnkgYW5kIHNlZWtzIHRvIDAgc28gdGhhdCBzdWNj
ZXNzaXZlCiAgIGNhbGxzIHRvIHRoZSBmdW5jdGlvbnMgYXJlIG1vcmUgZWZm
aWNpZW50LiAgSXQgYWxzbyByZWFkcyB0aGUgY3VycmVudAogICBjb250ZW50
cyBvZiB0aGUgZmlsZSBpbnRvIHRoZSBnbG9iYWwgYnVmLgoqLwojZGVmaW5l
IEZJTEVfVE9fQlVGKEZJTEUpIHsJCQkJCVwKICAgIHN0YXRpYyBpbnQgbiwg
ZmQgPSAtMTsJCQkJCVwKICAgIGlmIChmZCA9PSAtMSAmJiAoZmQgPSBvcGVu
KEZJTEUsIE9fUkRPTkxZKSkgPT0gLTEpIHsJXAoJZnByaW50ZihzdGRlcnIs
IEJBRF9PUEVOX01FU1NBR0UpOwkJCVwKCWNsb3NlKGZkKTsJCQkJCQlcCgly
ZXR1cm4gMDsJCQkJCQlcCiAgICB9CQkJCQkJCQlcCiAgICBsc2VlayhmZCwg
MEwsIFNFRUtfU0VUKTsJCQkJCVwKICAgIGlmICgobiA9IHJlYWQoZmQsIGJ1
Ziwgc2l6ZW9mIGJ1ZiAtIDEpKSA8IDApIHsJCVwKCXBlcnJvcihGSUxFKTsJ
CQkJCQlcCgljbG9zZShmZCk7CQkJCQkJXAoJZmQgPSAtMTsJCQkJCQlcCgly
ZXR1cm4gMDsJCQkJCQlcCiAgICB9CQkJCQkJCQlcCiAgICBidWZbbl0gPSAn
XDAnOwkJCQkJCVwKfQoKLyoKICogSWYgTk9fQkRGTFVTSCBpcyBkZWZpbmVk
LCBtYWtlIHRoaXMgYSB0cmFkaXRpb25hbCB1cGRhdGUKICogZGFlbW9uIHRo
YXQgY2FsbHMgc3luYygpLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGZvciBzeXN0
ZW1zCiAqIG90aGVyIHRoYW4gTGludXguCiAqLwoKI2lmZGVmIF9fbGludXhf
XwojICAgaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgojICAgaWYgZGVmaW5lZChf
X0dMSUJDX18pICYmIF9fR0xJQkNfXyA+PSAyCiMgICAgICAgaW5jbHVkZSA8
c3lzL2tkYWVtb24uaD4KIyAgIGVsc2UKICAgICAgICBfc3lzY2FsbDIoaW50
LCBiZGZsdXNoLCBpbnQsIGZ1bmMsIGludCwgZGF0YSk7CiMgICBlbmRpZgoj
ZWxzZQojICAgaWZuZGVmIE5PX0JERkxVU0gKIyAgICAgICBkZWZpbmUgTk9f
QkRGTFVTSAojICAgZW5kaWYKI2VuZGlmCgojaWZkZWYgTk9fQkRGTFVTSAoj
ICAgZGVmaW5lIEFSR1MgInM6IgojZWxzZQojICAgZGVmaW5lIEFSR1MgIlNz
OmY6IgojICAgaW5jbHVkZSA8c3lzbG9nLmg+CiNlbmRpZgoKLyoKICogT1BF
Tl9NQVggaXMgUE9TSVguMQogKi8KI2lmbmRlZiBPUEVOX01BWAojICAgZGVm
aW5lIE9QRU5fTUFYIDI1NgkJLyogYW55Ym9keSdzIGd1ZXNzICovCiNlbmRp
ZgoKc3RhdGljIGNvbnN0IGNoYXIgUkNTW10gPSAiQCgjKSAkUmV2aXNpb246
IDEuMyAkIjsKCnVuc2lnbmVkIGludCBzeW5jX2R1cmF0aW9uID0gMzA7CnVu
c2lnbmVkIGludCBmbHVzaF9kdXJhdGlvbiA9IDU7CnVuc2lnbmVkIGludCBk
b3duX3N5bmNfZHVyID0gMzYwMDsKdW5zaWduZWQgaW50IGRvd25fZmx1c2hf
ZHVyID0gMzYwMDsKdW5zaWduZWQgbG9uZyBpcnFzMSxpcnFzMjsKdGltZV90
IHRpbWUxLHRpbWUyOwpzdGF0aWMgY2hhciBidWZbMTAyNF07CgppbnQgdXNl
X3N5bmMgPSAwOwoKdm9pZCB1c2FnZShjaGFyICpuYW1lKQp7CiAgICBmcHJp
bnRmKHN0ZGVyciwKI2lmZGVmIE5PX0JERkxVU0gKCSAgICAiVXNhZ2U6ICVz
IFstcyBzZWNzXSBbLXkgc2Vjc11cbiIsCiNlbHNlCgkgICAgIlVzYWdlOiAl
cyBbLVNdIFstcyBzZWNzXSBbLWYgc2Vjc10gWy15IHNlY3NdIFstbCBzZWNz
XVxuIiwKI2VuZGlmCgkgICAgbmFtZSk7CiAgICBleGl0ICgxKTsKfQoKaW50
IHJlYWRfaXJxKHVuc2lnbmVkIGxvbmcgKmNvdW50cikgewogICAgY2hhciAq
cDsKICAgIGNoYXIgZmllbGRidWZbMTJdOwkJLyogYmlnZ2VyIHRoYW4gYW55
IGZpZWxkIG5hbWUgb3Igc2l6ZSBpbiBrYiAqLwogICAgaW50IGs7CiAgICAK
ICAgIEZJTEVfVE9fQlVGKElSUV9GSUxFKQogICAgcCA9IGJ1ZjsKCXdoaWxl
KCpwKSB7CgkgICAJc3NjYW5mKHAsIiUxMXMlbiIsZmllbGRidWYsJmspOwog
ICAgCQlpZighc3RyY21wKGZpZWxkYnVmLCIxNDoiKSkgewogICAgCQkJcCs9
azsKICAgIAkJCXNzY2FuZihwLCIlbGkiLGNvdW50cik7CgkJCQlicmVhazsg
CiAgICAJCX0KICAgIAkJZWxzZQogICAgCQkJd2hpbGUoKnArKyAhPSAnXG4n
KTsgIC8qIGlnbm9yZSBsaW5lcyB3ZSBkb24ndCB1bmRlcnN0YW5kICovCiAg
ICAJfQkJCiAgICByZXR1cm4gMDsKfQoKLyoKICogVGhlIHVwZGF0ZSgpIGZ1
bmN0aW9uIG5ldmVyIHJldHVybnMuCiAqIElmIGJkZmx1c2goKSBmYWlscywg
aXQgcmV2ZXJ0cyB0byBzeW5jKCkgaW5zdGVhZC4KICovCgp2b2lkCnVwZGF0
ZSh2b2lkKQp7CiNpZm5kZWYgTk9fQkRGTFVTSAogICAgaWYgKGJkZmx1c2go
MSwgMCkgPCAwKSB7Cgl1c2Vfc3luYyA9IDE7CglvcGVubG9nKCJ1cGRhdGUi
LCBMT0dfQ09OUywgTE9HX0RBRU1PTik7CglzeXNsb2coTE9HX0lORk8sICJT
d2l0Y2hpbmcgdG8gc3luYygyKSBpbnN0ZWFkIG9mIGJkZmx1c2goMikiKTsK
CWNsb3NlbG9nKCk7CiAgICB9CiNlbmRpZgoJcmVhZF9pcnEoJmlycXMxKTsK
CXRpbWUoJnRpbWUxKTsKICAgIGZvciAoOzspIHsKI2lmbmRlZiBOT19CREZM
VVNICglpZiAodXNlX3N5bmMpIHsKI2VuZGlmCgkgICAgc2xlZXAoc3luY19k
dXJhdGlvbik7CgkJcmVhZF9pcnEoJmlycXMyKTsKCQlpZiAoaXJxczEgIT0g
aXJxczIpIHsKCSAgICAgICAgc3luYygpOwoJCQl0aW1lKCZ0aW1lMSk7CgkJ
CXJlYWRfaXJxKCZpcnFzMSk7CgkJfSBlbHNlIHsKCQkJc2xlZXAoc3luY19k
dXJhdGlvbik7CgkJCXRpbWUyPXRpbWUoMCkgLSB0aW1lMTsKCQkJaWYgKHRp
bWUyID4gZG93bl9zeW5jX2R1cikgewoJCQkJc3luYyAoKTsJCgkJCQl0aW1l
KCZ0aW1lMSk7CgkJCQlyZWFkX2lycSgmaXJxczEpOwoJCQl9CgkJfQojaWZu
ZGVmIE5PX0JERkxVU0gKCX0gZWxzZSB7CgkgICAgc2xlZXAoZmx1c2hfZHVy
YXRpb24pOwoJCXJlYWRfaXJxKCZpcnFzMik7CgkJaWYgKGlycXMxICE9IGly
cXMyKSB7CgkgICAgICAgIGJkZmx1c2goMSwwKTsKCQkJdGltZSgmdGltZTEp
OwoJCQlyZWFkX2lycSgmaXJxczEpOwoJCX0gZWxzZSB7CgkJCXNsZWVwKGZs
dXNoX2R1cmF0aW9uKTsKCQkJdGltZTI9dGltZSgwKSAtIHRpbWUxOwoJCQlp
ZiAodGltZTIgPiBkb3duX2ZsdXNoX2R1cikgewoJCQkJYmRmbHVzaCgxLDAp
OwkKCQkJCXRpbWUoJnRpbWUxKTsKCQkJCXJlYWRfaXJxKCZpcnFzMSk7CgkJ
CX0KCQl9Cgl9CiNlbmRpZgogICAgfQp9CgppbnQKbWFpbihpbnQgYXJnYywg
Y2hhciAqKmFyZ3YpCnsKICAgIGludCBmLCBjOwoKICAgIHdoaWxlICgoYyA9
IGdldG9wdChhcmdjLCBhcmd2LCBBUkdTKSkgIT0gLTEpCglzd2l0Y2ggKGMp
IHsKCWNhc2UgJ1MnOiB1c2Vfc3luYyA9IDE7IGJyZWFrOwoJY2FzZSAncyc6
CXN5bmNfZHVyYXRpb24gPSBhdG9pKG9wdGFyZyk7IGJyZWFrOwoJY2FzZSAn
Zic6IGZsdXNoX2R1cmF0aW9uID0gYXRvaShvcHRhcmcpOyBicmVhazsKCWNh
c2UgJ3knOiBkb3duX3N5bmNfZHVyID0gYXRvaShvcHRhcmcpOyBicmVhazsK
CWNhc2UgJ2wnOiBkb3duX2ZsdXNoX2R1ciA9IGF0b2kob3B0YXJnKTsgYnJl
YWs7CgljYXNlICc/JzogdXNhZ2UoYXJndlswXSk7CglkZWZhdWx0OiBhYm9y
dCgpOwoJfQogICAgCiAgICBpZiAoc3luY19kdXJhdGlvbiA9PSAwIHx8IGZs
dXNoX2R1cmF0aW9uID09IDAgfHwgZG93bl9zeW5jX2R1ciA9PSAwIHx8IGRv
d25fZmx1c2hfZHVyID09IDAgKSB7CglmcHJpbnRmKHN0ZGVyciwgIiVzOiBh
cmd1bWVudCBtdXN0IGJlIHBvc2l0aXZlIGludGVnZXIuXG4iLCBhcmd2WzBd
KTsKCWV4aXQoMSk7CiAgICB9CgogICAgaWYgKG9wdGluZCA8IGFyZ2MpCgl1
c2FnZShhcmd2WzBdKTsKCiAgICAvKgogICAgICogUHJldmVudCBwZW9wbGUg
ZnJvbSBsYXVuY2hpbmcgbW9yZSB1cGRhdGUgZGFlbW9ucy4KICAgICAqIE1p
Z2h0IGFzIHdlbGwgY2FsbCBzeW5jKCkuCiAgICAgKi8KICAgIGlmIChnZXRl
dWlkKCkgIT0gMCkgewoJc3luYygpOwoJZnByaW50ZihzdGRlcnIsICIlczog
c2hvdWxkIG9ubHkgYmUgcnVuIGJ5IHJvb3QuXG4iLCBhcmd2WzBdKTsKCWV4
aXQoMSk7CiAgICB9CgogICAgLyoKICAgICAqIElnbm9yZSBhIGZldyBzaWdu
YWxzIGZvciBnb29kIG1lYXN1cmUuCiAgICAgKi8KICAgIHNpZ25hbChTSUdU
RVJNLCBTSUdfSUdOKTsKICAgIHNpZ25hbChTSUdJTlQsIFNJR19JR04pOwog
ICAgCiAgICBpZiAoZm9yaygpID4gMCkKCWV4aXQoMCk7CiAgCiAgICAvKgog
ICAgICogQmVjb21lIHNlc3Npb24gbGVhZGVyIChnZXQgcmlkIG9mIGNvbnRy
b2xsaW5nIHRlcm1pbmFsKS4KICAgICAqLwogICAgc2V0c2lkKCk7CgogICAg
LyoKICAgICAqIE1ha2Ugc3VyZSB3ZSBhcmUgb24gYSBmaWxlIHN5c3RlbSB0
aGF0IHN0YXlzIG1vdW50ZWQuCiAgICAgKi8KICAgIGNoZGlyKCIvIik7CiAg
ICAKICAgIGZvciAoZiA9IDA7IGYgPCBPUEVOX01BWDsgZisrKQoJY2xvc2Uo
Zik7CiAgICAKICAgIHVwZGF0ZSgpOwogICAgCiAgICByZXR1cm4gMDsKfQoK
Cg==
--24676490-32208-892662583=:-445905--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu