Date: Wed, 3 Sep 2014 20:45:33 -0700 From: Garrett Cooper <yaneurabeya@gmail.com> To: freebsd-arch@freebsd.org Cc: Julio Merino <jmmv@freebsd.org>, "rpaulo@freebsd.org" <rpaulo@freebsd.org> Subject: [RFC] Add __arraycount from NetBSD to sys/cdefs.h Message-ID: <CAGHfRMBMPra5YXDn0e83dpVxwnarg3DL8o31xr7DhWv%2BVXskTg@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--20cf300e5329504d8c0502352fbc Content-Type: text/plain; charset=UTF-8 Hi all, In order to ease porting code and reduce divergence with NetBSD when importing code (a large chunk of which for me are tests), I would like to move nitems to sys/cdefs.h and alias __arraycount to nitems. Here's the __arraycount #define in lib/libnetbsd/sys/cdefs.h: 44 /* 45 * Return the number of elements in a statically-allocated array, 46 * __x. 47 */ 48 #define __arraycount(__x) (sizeof(__x) / sizeof(__x[0])) Here's the nitems #define in sys/sys/param.h: 277 #define nitems(x) (sizeof((x)) / sizeof((x)[0])) sys/cdefs.h gets pulled in automatically with sys/param.h, so anything using nitems will continue to function like before (see below for more details). I've attached a patch which addresses all hardcoded definitions in the tree added by FreeBSD developers. If there aren't any major concerns with my proposed change, I'll put it up for review on Phabricator. Thank you! -Garrett $ cat cdefs_pound_define.c #include <sys/param.h> #ifdef _SYS_CDEFS_H_ #warning "sys/cdefs.h has been included" #endif $ cc -c cdefs_pound_define.c cdefs_pound_define.c:4:2: warning: "sys/cdefs.h has been included" [-W#warnings] #warning "sys/cdefs.h has been included" ^ 1 warning generated. $ cc -D_KERNEL -c cdefs_pound_define.c cdefs_pound_define.c:4:2: warning: "sys/cdefs.h has been included" [-W#warnings] #warning "sys/cdefs.h has been included" ^ 1 warning generated. $ gcc -c cdefs_pound_define.c cdefs_pound_define.c:4:2: warning: #warning "sys/cdefs.h has been included" $ gcc -D_KERNEL -c cdefs_pound_define.c cdefs_pound_define.c:4:2: warning: #warning "sys/cdefs.h has been included" --20cf300e5329504d8c0502352fbc Content-Type: application/octet-stream; name="0001-Make-__arraycount-macros-from-NetBSD-to-ease-porting.patch" Content-Disposition: attachment; filename="0001-Make-__arraycount-macros-from-NetBSD-to-ease-porting.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hznjv7kz0 RnJvbSA2ZjkxZTAwNjQ5NjExOGFmNGIxOGYwMmFlZDIwMmExYzg1MGVhM2QwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogR2FycmV0dCBDb29wZXIgPHlhbmVnb21pQGdtYWlsLmNvbT4N CkRhdGU6IFRodSwgNCBTZXAgMjAxNCAwMjo1MTozOSAtMDcwMA0KU3ViamVjdDogW1BBVENIXSBN YWtlIF9fYXJyYXljb3VudCBtYWNyb3MgZnJvbSBOZXRCU0QgdG8gZWFzZSBwb3J0aW5nIGZyb20N CiBOZXRCU0QNCg0KMS4gTW92ZSBuaXRlbXMgZnJvbSBzeXMvcGFyYW0uaCB0byBzeXMvY2RlZnMu aA0KMi4gQWxpYXMgX19hcnJheWNvdW50IHRvIG5pdGVtcw0KMy4gR2FyYmFnZSBjb2xsZWN0IGFs bCBhZCBob2MgZGVmaW5pdGlvbnMgaW4gdGhlIHRyZWUgdGhhdCBhcmVuJ3QNCiAgIHByb3RlY3Rl ZCBieSAjaWZuZGVmIF9fYXJyYXljb3VudCBub3QgcHJvdmlkZWQgYnkgYSB0aGlyZC1wYXJ0eSBz b3VyY2UNCg0KU3BvbnNvcmVkIGJ5OiBFTUMgLyBJc2lsb24gU3RvcmFnZSBEaXZpc2lvbg0KLS0t DQogY29udHJpYi9saWJjLXZpcy91bnZpcy5jICAgICAgICAgICB8IDYgLS0tLS0tDQogbGliL2xp Ym5ldGJzZC9zeXMvY2RlZnMuaCAgICAgICAgICB8IDYgLS0tLS0tDQogc3lzL2tlcm4vc3RhY2tf cHJvdGVjdG9yLmMgICAgICAgICB8IDEgLQ0KIHN5cy9zeXMvY2RlZnMuaCAgICAgICAgICAgICAg ICAgICAgfCAzICsrKw0KIHN5cy9zeXMvcGFyYW0uaCAgICAgICAgICAgICAgICAgICAgfCAxIC0N CiB1c3Iuc2Jpbi9ibHVldG9vdGgvYnRwYW5kL2J0cGFuZC5oIHwgNCAtLS0tDQogNiBmaWxlcyBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEv Y29udHJpYi9saWJjLXZpcy91bnZpcy5jIGIvY29udHJpYi9saWJjLXZpcy91bnZpcy5jDQppbmRl eCA5Y2YxMTJjLi44M2ZmMmEwIDEwMDY0NA0KLS0tIGEvY29udHJpYi9saWJjLXZpcy91bnZpcy5j DQorKysgYi9jb250cmliL2xpYmMtdmlzL3VudmlzLmMNCkBAIC01MSwxMiArNTEsNiBAQCBfX0ZC U0RJRCgiJEZyZWVCU0QkIik7DQogDQogI2RlZmluZQlfRElBR0FTU0VSVCh4KQlhc3NlcnQoeCkN CiANCi0vKg0KLSAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgc3RhdGljYWxs eS1hbGxvY2F0ZWQgYXJyYXksDQotICogX194Lg0KLSAqLw0KLSNkZWZpbmUJX19hcnJheWNvdW50 KF9feCkJKHNpemVvZihfX3gpIC8gc2l6ZW9mKF9feFswXSkpDQotDQogI2lmZGVmIF9fd2Vha19h bGlhcw0KIF9fd2Vha19hbGlhcyhzdHJudW52aXN4LF9zdHJudW52aXN4KQ0KICNlbmRpZg0KZGlm ZiAtLWdpdCBhL2xpYi9saWJuZXRic2Qvc3lzL2NkZWZzLmggYi9saWIvbGlibmV0YnNkL3N5cy9j ZGVmcy5oDQppbmRleCBiM2Q1MmM5Li5mYjUzNjdmIDEwMDY0NA0KLS0tIGEvbGliL2xpYm5ldGJz ZC9zeXMvY2RlZnMuaA0KKysrIGIvbGliL2xpYm5ldGJzZC9zeXMvY2RlZnMuaA0KQEAgLTQxLDEy ICs0MSw2IEBADQogI2RlZmluZSBfX2RlYWQNCiAjZW5kaWYNCiANCi0vKg0KLSAqIFJldHVybiB0 aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgc3RhdGljYWxseS1hbGxvY2F0ZWQgYXJyYXksDQot ICogX194Lg0KLSAqLw0KLSNkZWZpbmUJX19hcnJheWNvdW50KF9feCkJKHNpemVvZihfX3gpIC8g c2l6ZW9mKF9feFswXSkpDQotDQogI2RlZmluZQlfX19TVFJJTkcoeCkJX19TVFJJTkcoeCkNCiAj ZGVmaW5lCV9fU1RSSU5HKHgpCSN4DQogDQpkaWZmIC0tZ2l0IGEvc3lzL2tlcm4vc3RhY2tfcHJv dGVjdG9yLmMgYi9zeXMva2Vybi9zdGFja19wcm90ZWN0b3IuYw0KaW5kZXggYjVmOTk3My4uNjNh Y2I5MCAxMDA2NDQNCi0tLSBhL3N5cy9rZXJuL3N0YWNrX3Byb3RlY3Rvci5jDQorKysgYi9zeXMv a2Vybi9zdGFja19wcm90ZWN0b3IuYw0KQEAgLTE3LDcgKzE3LDYgQEAgX19zdGFja19jaGtfZmFp bCh2b2lkKQ0KIAlwYW5pYygic3RhY2sgb3ZlcmZsb3cgZGV0ZWN0ZWQ7IGJhY2t0cmFjZSBtYXkg YmUgY29ycnVwdGVkIik7DQogfQ0KIA0KLSNkZWZpbmUgX19hcnJheWNvdW50KF9feCkJKHNpemVv ZihfX3gpIC8gc2l6ZW9mKF9feFswXSkpDQogc3RhdGljIHZvaWQNCiBfX3N0YWNrX2Noa19pbml0 KHZvaWQgKmR1bW15IF9fdW51c2VkKQ0KIHsNCmRpZmYgLS1naXQgYS9zeXMvc3lzL2NkZWZzLmgg Yi9zeXMvc3lzL2NkZWZzLmgNCmluZGV4IDRjNGMyYWYuLmJlZmM1OWQgMTAwNjQ0DQotLS0gYS9z eXMvc3lzL2NkZWZzLmgNCisrKyBiL3N5cy9zeXMvY2RlZnMuaA0KQEAgLTczOSw0ICs3MzksNyBA QA0KICNkZWZpbmUgX19OT19UTFMgMQ0KICNlbmRpZg0KIA0KKyNkZWZpbmUJbml0ZW1zKHgpCShz aXplb2YoKHgpKSAvIHNpemVvZigoeClbMF0pKQ0KKyNkZWZpbmUJX19hcnJheWNvdW50KHgpCW5p dGVtcyh4KQ0KKw0KICNlbmRpZiAvKiAhX1NZU19DREVGU19IXyAqLw0KZGlmZiAtLWdpdCBhL3N5 cy9zeXMvcGFyYW0uaCBiL3N5cy9zeXMvcGFyYW0uaA0KaW5kZXggMjY0YTM4YS4uN2VjYTc0YiAx MDA2NDQNCi0tLSBhL3N5cy9zeXMvcGFyYW0uaA0KKysrIGIvc3lzL3N5cy9wYXJhbS5oDQpAQCAt Mjc0LDcgKzI3NCw2IEBADQogI2lmbmRlZiBob3dtYW55DQogI2RlZmluZQlob3dtYW55KHgsIHkp CSgoKHgpKygoeSktMSkpLyh5KSkNCiAjZW5kaWYNCi0jZGVmaW5lCW5pdGVtcyh4KQkoc2l6ZW9m KCh4KSkgLyBzaXplb2YoKHgpWzBdKSkNCiAjZGVmaW5lCXJvdW5kZG93bih4LCB5KQkoKCh4KS8o eSkpKih5KSkNCiAjZGVmaW5lCXJvdW5kZG93bjIoeCwgeSkgKCh4KSYofigoeSktMSkpKSAgICAg ICAgICAvKiBpZiB5IGlzIHBvd2VyIG9mIHR3byAqLw0KICNkZWZpbmUJcm91bmR1cCh4LCB5KQko KCgoeCkrKCh5KS0xKSkvKHkpKSooeSkpICAvKiB0byBhbnkgeSAqLw0KZGlmZiAtLWdpdCBhL3Vz ci5zYmluL2JsdWV0b290aC9idHBhbmQvYnRwYW5kLmggYi91c3Iuc2Jpbi9ibHVldG9vdGgvYnRw YW5kL2J0cGFuZC5oDQppbmRleCA0NDBjY2ExLi5iMjBjNmM1IDEwMDY0NA0KLS0tIGEvdXNyLnNi aW4vYmx1ZXRvb3RoL2J0cGFuZC9idHBhbmQuaA0KKysrIGIvdXNyLnNiaW4vYmx1ZXRvb3RoL2J0 cGFuZC9idHBhbmQuaA0KQEAgLTQzLDEwICs0Myw2IEBADQogDQogI2luY2x1ZGUgImV2ZW50Lmgi DQogDQotI2lmbmRlZiBfX2FycmF5Y291bnQNCi0jZGVmaW5lIF9fYXJyYXljb3VudChfX3gpCShz aXplb2YoX194KSAvIHNpemVvZihfX3hbMF0pKQ0KLSNlbmRpZg0KLQ0KICNpZm5kZWYJTDJDQVBf UFNNX0lOVkFMSUQNCiAjZGVmaW5lCUwyQ0FQX1BTTV9JTlZBTElEKHBzbSkJKCgocHNtKSAmIDB4 MDEwMSkgIT0gMHgwMDAxKQ0KICNlbmRpZg0KLS0gDQoyLjAuMg0KDQo= --20cf300e5329504d8c0502352fbc--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGHfRMBMPra5YXDn0e83dpVxwnarg3DL8o31xr7DhWv%2BVXskTg>