<div dir="ltr"><div>difference between DECLARE_* and DEFINE_* macro namespaces ?<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>heres some quantitative observations</div><div><br></div><div>1st , raw usage counts</div><div><br></div><div>[jimc@frodo wk-test]$ ack DECLARE_\\w+ | wc<br>  12541   30583 1030008<br></div><div>[jimc@frodo wk-test]$ ack \\bDECLARE_\\w+ | wc<br>  11293   25240  897730<br></div><div><br></div><div>[jimc@frodo wk-test]$ ack \\bDEFINE_\\w+ | wc<br>  14746   42085 1222994<br>[jimc@frodo wk-test]$ ack DEFINE_\\w+ | wc<br>  16714   48172 1386881<br></div><div><br></div><div>used quite a lot. worth seeing the patterns...</div><div><br></div><div><br></div><div>this one seems telling it counts indent=0 lines,</div><div>ie Header lines, file-scope vars, global declarations etc.</div><div><br></div><div>]$ ack ^DEFINE_\\w+ | wc<br></div><div>   7392   19578  661324<br></div><div><br></div><div><br></div><div>[jimc@frodo wk-test]$ ack 'static DECLARE_\w+'  | wc<br>    920    3025   80318<br></div><div><br></div><div>so about 1/12 of the DECLAREs have static outside them.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>#defines determine how many PATTERN uses there are.<br></div><div>lets count them.</div><div><br></div><div>[jimc@frodo wk-test]$ ack '#define DECLARE_\w+' | wc<br>    314    1384   27393<br>[jimc@frodo wk-test]$ ack '#define DEFINE_\w+' | wc<br>    695    2734   55559<br></div><div><br></div><div>so, 2.3x DEFINE_/DECLARE_ definitions,</div><div>and 1.15x uses of those defns</div><div><br></div><div>interesting, not suggestive of anything..</div><div><br></div><div><br></div><div><br></div><div><br></div><div>lets look at one case</div><div><div><br>include/linux/spinlock_types_raw.h<br>71:#define DEFINE_RAW_SPINLOCK(x)  raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)<br></div><div><br></div></div><div>its a variable declaration, expecting ';' in caller to close it.</div><div><br></div><div>[jimc@frodo wk-test]$ ack DEFINE_RAW_SPINLOCK | wc<br>    140     293   10455<br>[jimc@frodo wk-test]$ ack 'static DEFINE_RAW_SPINLOCK' | wc<br>    116     258    8705<br>[jimc@frodo wk-test]$ ack '^static DEFINE_RAW_SPINLOCK' | wc<br>    107     231    8009<br></div><div><br></div><div>140 uses, most with static, most of those at file-scope</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>so, all that said, I havent gleaned any heuristics</div><div><br></div><div>does anyone want to offer a more qualitative review ?<br></div><div><br></div><div><br></div></div>