From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1KacA3-00085I-7H for mharc-grub-devel@gnu.org; Tue, 02 Sep 2008 16:07:35 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KacA0-00084Q-IV for grub-devel@gnu.org; Tue, 02 Sep 2008 16:07:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kac9y-00083A-An for grub-devel@gnu.org; Tue, 02 Sep 2008 16:07:32 -0400 Received: from [199.232.76.173] (port=33292 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kac9y-000836-6a for grub-devel@gnu.org; Tue, 02 Sep 2008 16:07:30 -0400 Received: from mx20.gnu.org ([199.232.41.8]:35311) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Kac9x-0000Qd-U0 for grub-devel@gnu.org; Tue, 02 Sep 2008 16:07:30 -0400 Received: from ug-out-1314.google.com ([66.249.92.169]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Kac9w-0002Gy-N3 for grub-devel@gnu.org; Tue, 02 Sep 2008 16:07:29 -0400 Received: by ug-out-1314.google.com with SMTP id m2so2344490uge.17 for ; Tue, 02 Sep 2008 13:07:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:in-reply-to :references:content-type:date:message-id:mime-version:x-mailer; bh=Ap6KQ+39rXxiSL7kz7yZPCaqbC3KoiwF8MpNAT3Yv30=; b=rbrEPHa70/sFvXqA2HOrHMkX9leROD3XGxQ1la9eosnc4hNzVQo+SkowSupYznou3t knPK0PkRNsvV73iqi6KebpxfAt/q33f22ddo8jDzSvceDbdfzOHUn7kT/cDku6HP9IHJ osbky8PZdxyUO2wxxTfwfeejyDvhM5B8rq4VI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:in-reply-to:references:content-type:date:message-id :mime-version:x-mailer; b=gQvPoHHyQu1Sb63kdL41o2PRrYm59gOG8VehimN68tQyie7FWmuHgeMUcqVWsinqpz 1NdKrGcLsDQ9yN8N3bubrvzLiyOo2BClJciU8H+gh3YY5iFvlCRYWA4rL1yhT2NkgAZZ P9VeHvZ+yZBIREGMLPM9y3sjgFXLdB6QAkqu8= Received: by 10.67.90.10 with SMTP id s10mr4259408ugl.38.1220386046022; Tue, 02 Sep 2008 13:07:26 -0700 (PDT) Received: from ?192.168.1.100? ( [213.37.137.93]) by mx.google.com with ESMTPS id 23sm5106778ugf.37.2008.09.02.13.07.23 (version=SSLv3 cipher=RC4-MD5); Tue, 02 Sep 2008 13:07:25 -0700 (PDT) From: Javier =?ISO-8859-1?Q?Mart=EDn?= To: The development of GRUB 2 In-Reply-To: <48BD8847.9030502@gmail.com> References: <48BD4C52.6040308@gmail.com> <1220367299.23879.15.camel@localhost> <48BD62BE.7090507@gmail.com> <1220373059.23879.25.camel@localhost> <48BD8847.9030502@gmail.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nQI6lqHG26K8EqCIzMPO" Date: Tue, 02 Sep 2008 22:10:16 +0200 Message-Id: <1220386216.23879.55.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 X-detected-kernel: by mx20.gnu.org: Linux 2.6 (newer, 2) X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) Subject: Re: Sendkey patch X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Sep 2008 20:07:32 -0000 --=-nQI6lqHG26K8EqCIzMPO Content-Type: multipart/mixed; boundary="=-a/Vk0DTpWW7m1UUNQlp3" --=-a/Vk0DTpWW7m1UUNQlp3 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable El mar, 02-09-2008 a las 20:39 +0200, phcoder escribi=C3=B3: > +void > +grub_loader_remove_preboot (void *p) > +{ > + if (!p) > + return; > + *(PREBOOT_HND(p)->prev_pointer)=3DPREBOOT_HND(p)->next; This line will "crash" if p is the head of the list (with prev_pointer being 0). I quote crash because a crash is what happens under an OS: under GRUB you just overwrite address 0x0 which in i386-pc is the start of the real mode IVT. > + if (PREBOOT_HND(p)->next) > + PREBOOT_HND(p)->next->prev_pointer=3DPREBOOT_HND(p)->prev_pointer; > + grub_free (p); > +} All these macro plays are nonsense and a hindrance to readability just because you did not want to add a local variable and do the cast once. Here is my "version" of your patch, without the double indirection and the strange plays. The overhead is 103 bytes without the error line against 63 of yours, but I really think that the symmetric and understandable handling of previous and next is worth 40 bytes. PS: > +void *EXPORT_FUNC(grub_loader_add_preboot) (grub_err_t ... I think that (only) in function declarations it's better to write "void* f()" than "void *f()" because otherwise the * can be easily overlooked. However, this is my word and does not come from the GCS. --=-a/Vk0DTpWW7m1UUNQlp3 Content-Disposition: attachment; filename=preboot.patch Content-Type: text/x-patch; name=preboot.patch; charset=utf-8 Content-Transfer-Encoding: base64 SW5kZXg6IGtlcm4vbG9hZGVyLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBrZXJuL2xvYWRlci5jCShyZXZp c2nDs246IDE4NDUpDQorKysga2Vybi9sb2FkZXIuYwkoY29waWEgZGUgdHJhYmFqbykNCkBAIC0y MiwxMiArMjIsNTQgQEANCiAjaW5jbHVkZSA8Z3J1Yi9lcnIuaD4NCiAjaW5jbHVkZSA8Z3J1Yi9r ZXJuZWwuaD4NCiANCitzdHJ1Y3QgZ3J1Yl9wcmVib290X3QNCit7DQorICBncnViX2Vycl90ICgq cHJlYm9vdF9mdW5jKSAoaW50KTsgIA0KKyAgc3RydWN0IGdydWJfcHJlYm9vdF90ICpuZXh0Ow0K KyAgc3RydWN0IGdydWJfcHJlYm9vdF90ICpwcmV2aW91czsNCit9Ow0KKw0KIHN0YXRpYyBncnVi X2Vycl90ICgqZ3J1Yl9sb2FkZXJfYm9vdF9mdW5jKSAodm9pZCk7DQogc3RhdGljIGdydWJfZXJy X3QgKCpncnViX2xvYWRlcl91bmxvYWRfZnVuYykgKHZvaWQpOw0KIHN0YXRpYyBpbnQgZ3J1Yl9s b2FkZXJfbm9yZXR1cm47DQogDQogc3RhdGljIGludCBncnViX2xvYWRlcl9sb2FkZWQ7DQogDQor c3RhdGljIHN0cnVjdCBncnViX3ByZWJvb3RfdCAqZ3J1Yl9sb2FkZXJfcHJlYm9vdHM9MDsNCisN Cit2b2lkICoNCitncnViX2xvYWRlcl9hZGRfcHJlYm9vdCAoZ3J1Yl9lcnJfdCAoKnByZWJvb3Rf ZnVuYykgKGludCkpDQorew0KKyAgc3RydWN0IGdydWJfcHJlYm9vdF90ICpjdXI7DQorICBpZiAo IXByZWJvb3RfZnVuYykNCisgICAgcmV0dXJuIDA7DQorICBjdXIgPSAoc3RydWN0IGdydWJfcHJl Ym9vdF90ICopIGdydWJfbWFsbG9jIChzaXplb2YgKHN0cnVjdCBncnViX3ByZWJvb3RfdCkpOw0K KyAgaWYgKCFjdXIpDQorICAgIHsNCisgICAgICBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0Zf TUVNT1JZLCAibm8gbWVtb3J5IGxlZnQgdG8gcmVnaXN0ZXIgaG9vayIpOw0KKyAgICAgIHJldHVy biAwOw0KKyAgICB9DQorICBjdXItPm5leHQgPSBncnViX2xvYWRlcl9wcmVib290czsNCisgIGN1 ci0+cHJldmlvdXMgPSAwOw0KKyAgY3VyLT5uZXh0LT5wcmV2aW91cyA9IGN1cjsNCisgIGN1ci0+ cHJlYm9vdF9mdW5jID0gcHJlYm9vdF9mdW5jOw0KKyAgZ3J1Yl9sb2FkZXJfcHJlYm9vdHMgPSBj dXI7DQorICByZXR1cm4gY3VyOw0KK30NCisNCit2b2lkDQorZ3J1Yl9sb2FkZXJfcmVtb3ZlX3By ZWJvb3QgKHZvaWQgKnApDQorew0KKyAgc3RydWN0IGdydWJfcHJlYm9vdF90ICpobmQgPSAoc3Ry dWN0IGdydWJfcHJlYm9vdF90ICopcDsNCisgIGlmICghaG5kKQ0KKyAgICByZXR1cm47DQorICBp ZiAoaG5kLT5wcmV2aW91cykNCisgICAgaG5kLT5wcmV2aW91cy0+bmV4dCA9IGhuZC0+bmV4dDsN CisgIGlmIChobmQtPm5leHQpDQorICAgIGhuZC0+bmV4dC0+cHJldmlvdXMgPSBobmQtPnByZXZp b3VzOw0KKyAgZ3J1Yl9mcmVlIChobmQpOw0KK30NCisNCiBpbnQNCiBncnViX2xvYWRlcl9pc19s b2FkZWQgKHZvaWQpDQogew0KQEAgLTY0LDEyICsxMDYsMTggQEANCiBncnViX2Vycl90DQogZ3J1 Yl9sb2FkZXJfYm9vdCAodm9pZCkNCiB7DQorICBzdHJ1Y3QgZ3J1Yl9wcmVib290X3QgKml0ZXI9 Z3J1Yl9sb2FkZXJfcHJlYm9vdHM7DQogICBpZiAoISBncnViX2xvYWRlcl9sb2FkZWQpDQogICAg IHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9OT19LRVJORUwsICJubyBsb2FkZWQga2VybmVs Iik7DQogDQogICBpZiAoZ3J1Yl9sb2FkZXJfbm9yZXR1cm4pDQogICAgIGdydWJfbWFjaGluZV9m aW5pICgpOw0KLSAgDQorICB3aGlsZSAoaXRlcikNCisgICAgew0KKyAgICAgIGlmIChpdGVyLT5w cmVib290X2Z1bmMpDQorCWl0ZXItPnByZWJvb3RfZnVuYyAoZ3J1Yl9sb2FkZXJfbm9yZXR1cm4p Ow0KKyAgICAgIGl0ZXI9aXRlci0+bmV4dDsNCisgICAgfQ0KICAgcmV0dXJuIChncnViX2xvYWRl cl9ib290X2Z1bmMpICgpOw0KIH0NCiANCkluZGV4OiBpbmNsdWRlL2dydWIvbG9hZGVyLmgNCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCi0tLSBpbmNsdWRlL2dydWIvbG9hZGVyLmgJKHJldmlzacOzbjogMTg0NSkNCisr KyBpbmNsdWRlL2dydWIvbG9hZGVyLmgJKGNvcGlhIGRlIHRyYWJham8pDQpAQCAtMjUsNiArMjUs OCBAQA0KICNpbmNsdWRlIDxncnViL2Vyci5oPg0KICNpbmNsdWRlIDxncnViL3R5cGVzLmg+DQog DQordHlwZWRlZiBncnViX2Vycl90ICgqZ3J1Yl9wcmVib290X2Z1bmMpIChpbnQgbm9yZXR1cm4p Ow0KKw0KIC8qIENoZWNrIGlmIGEgbG9hZGVyIGlzIGxvYWRlZC4gICovDQogaW50IEVYUE9SVF9G VU5DKGdydWJfbG9hZGVyX2lzX2xvYWRlZCkgKHZvaWQpOw0KIA0KQEAgLTM3LDYgKzM5LDEyIEBA DQogLyogVW5zZXQgY3VycmVudCBsb2FkZXIsIGlmIGFueS4gICovDQogdm9pZCBFWFBPUlRfRlVO QyhncnViX2xvYWRlcl91bnNldCkgKHZvaWQpOw0KIA0KKy8qQWRkIGEgcHJlYm9vdCBmdW5jdGlv biovDQordm9pZCogRVhQT1JUX0ZVTkMoZ3J1Yl9sb2FkZXJfYWRkX3ByZWJvb3QpIChncnViX3By ZWJvb3RfZnVuYyBmdW5jKTsNCisNCisvKlJlbW92ZSBnaXZlbiBwcmVib290IGZ1bmN0aW9uKi8N Cit2b2lkIEVYUE9SVF9GVU5DKGdydWJfbG9hZGVyX3JlbW92ZV9wcmVib290KSAodm9pZCAqaG5k KTsNCisNCiAvKiBDYWxsIHRoZSBib290IGhvb2sgaW4gY3VycmVudCBsb2FkZXIuIFRoaXMgbWF5 IG9yIG1heSBub3QgcmV0dXJuLA0KICAgIGRlcGVuZGluZyBvbiB0aGUgc2V0dGluZyBieSBncnVi X2xvYWRlcl9zZXQuICAqLw0KIGdydWJfZXJyX3QgRVhQT1JUX0ZVTkMoZ3J1Yl9sb2FkZXJfYm9v dCkgKHZvaWQpOw0K --=-a/Vk0DTpWW7m1UUNQlp3-- --=-nQI6lqHG26K8EqCIzMPO Content-Type: application/pgp-signature; name=signature.asc Content-Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada digitalmente -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iQIVAwUASL2dqKSl+Fbdeo72AQIrfQ//VhzOH8h1QDpnBkW9bVS+J/29aVmncH93 Yf8ZaZzULSwlA12uwsaXX/T164GW+iwCta/KUt8DF6TLuhHmjqvriHXXbyPkmYrp 49h+4P6GefmKLOXSjLgR8TJPimn+v9JpZJHAKFftbXHhERon0D46iGpflHoHP65L G17v7qtlaB4mLQJi4kKmajRR6AJLdctGVZ/rUMR/+Co+LycY9VdBR/FkRD9Ygte1 vy1y1vxcyKCVb1PMjlB76bQvqEpLKv4SgOkVZAuNECEf6pV/K+NjxielVfmve0Hv /kqMartOwH784M+v/kOWyuNQfjhOomzqk3hrxHtqlcVNTb8UOYa45cyANeV5k5fb ZGYdRgTLf3CotNw26w0iHgS+pWyBE+BGl14rdZwBHOCj7t6MIzR1zs+8KqpN4hZJ 79EM2R8EiQip8+WhAutBJ2CGEYWLQO6k29BWihU1x2lD6B+fuHGv9FLt41y6UZMe LWtLFgNruo8ckz8VRdsuzG0cg2kEtl1FMLlNFGNAr3jnjaWI09cxZmQmKfI0Bf9b RO76QHEZV2pueLDcB1iKDKmm8LxVkYc0PuvS56dyCer+fDMGqaGX9SV5GUaXYtp5 Op7NgujPekKnMY2o/TdI0etcH7fiWv0/ReMHEujhDxa0Z/ZERZo6z2SXKluADNYa 1pIneMGke2g= =EomP -----END PGP SIGNATURE----- --=-nQI6lqHG26K8EqCIzMPO--