Remove unused main() args in many modules. This makes us closer to compiling cleanly with -Wunused (as used by -Wextra). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
container_of: Add container_of_or_null() It's quite common to have a pointer which could be either a pointer to a structure member, or NULL. This needs special casing with container_of(), or it will convert NULL into something strange. This patch adds container_of_or_null(), which will return NULL if passed (an appropriately typed) NULL, or the containining structure as container_of() otherwise. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan: Correct some poor conventions in _info includes There are a couple of small problems with the includes used in most of ccan's _info files. * _info routinely uses printf(), and so should include <stdio.h>, but only some of them do. We get away with it, because they do include <string.h>, which apparently includes <stdio.h> indirectly, but we should be explicit about it. * Most _info files were including config.h after the system headers. That _seems_ sensible, but actually causes problems. Because config.h defines _GNU_SOURCE it can change the behaviour of the system headers. More specifically it can make them behave differently to how the individual module headers (which have included config.h) expects them to behave. This patch adjusts all the existing _info files and, more importantly, the template constructed by ccanlint. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Relicense all public domain modules to CC0. I wrote all of most of them, for the others, here's the CCAN mailing list thread authorizing it: From: Timothy B. Terriberry <tterribe@xiph.org> Subject: Re: [ccan] Changing from Public Domain to CC0 To: Rusty Russell <rusty@rustcorp.com.au> Cc: ccan@ozlabs.org Date: Wed, 31 Oct 2012 02:53:50 -0400 Rusty Russell <rusty@rustcorp.com.au> wrote: > I want to change the License string (and add a symlink) to the following > trivial modules. Please Ack. > isaac Ack. From: Alessandro Guido <ag@alessandroguido.name> Subject: Re: Changing from Public Domain to CC0 To: Rusty Russell <rusty@rustcorp.com.au> Date: Wed, 31 Oct 2012 10:59:53 +0100 Acked-by: Alessandro Guido <ag@alessandroguido.name> From: Brad Hards <bradh@frogmouth.net> Subject: Re: Changing from Public Domain to CC0 To: Rusty Russell <rusty@rustcorp.com.au> Cc: Joey Adams <joeyadams3.14159@gmail.com>, Alessandro Guido <ag@alessandroguido.name>, Andreas Schlick <schlick@lavabit.com>, ccan@ozlabs.org Date: Wed, 31 Oct 2012 23:43:24 +1100 On 31/10/12 17:43, Rusty Russell wrote: > Damn lawyers! > > Since Public Domain is a slippery concept outside certain countries, it > has been suggested that I formalize it to Creative Commons Zero. > > I want to change the License string (and add a symlink) to the following > trivial modules. Please Ack. Ack. More generally, anything I've put into CCAN is so trivial that you can relicense it (to any Free / Open Source license) as part of any relicensing you can otherwise get agreement to. Brad [Sorry if this comes out in HTML - I'm stuck with unsat tools while travelling]. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
container_of: add container_off_var macro Based on patch by Andrey Smirnov <andrew.smirnov@gmail.com>: There is are certain use-cases when it is necessary to know the offset of the member in a structure's memory layout. One such use-case can be seen in `ccan/list/list.h' in macros `list_for_each' and `list_for_each_safe'. This commit implements said functionality with `container_of_var_off' macro. Renamed container_of_var_off -> container_off_var now we have container_off.
various: make the _info License: wording uniform for GPL variants. GPL versions 2 and 3 both specifically mention "any later version" as the phrase which allows the user to choose to upgrade the license. Make sure we use that phrase, and make the format consistent across modules.