On Tue, Feb 21, 2017 at 09:33:39PM -0700, Simon Glass wrote: > There are a few places where libfdt.h cannot be used as is with swig: > > - macros like fdt_totalsize() have to be defined as C declarations > - fdt_offset_ptr() and fdt_getprop_namelen() need special treatment due to > a TODO in the wrapper for fdt_getprop(). However they are not useful to > Python so can be removed > > Add #ifdefs to work around these problem. > > Signed-off-by: Simon Glass <sjg@xxxxxxxxxxxx> > --- > > Changes in v7: None > Changes in v6: None > Changes in v5: > - Update commit message > - Drop #ifdef around fdt_get_header() macros > > Changes in v4: > - Add new patch to adjust libfdt.h to work with swig > > Changes in v3: None > Changes in v2: None > > libfdt/libfdt.h | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h > index c69e918..2aa8ff6 100644 > --- a/libfdt/libfdt.h > +++ b/libfdt/libfdt.h > @@ -143,7 +143,9 @@ > /* Low-level functions (you probably don't need these) */ > /**********************************************************************/ > > +#ifndef SWIG /* This functions are not useful in Python */ > const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen); > +#endif > static inline void *fdt_offset_ptr_w(void *fdt, int offset, int checklen) > { > return (void *)(uintptr_t)fdt_offset_ptr(fdt, offset, checklen); > @@ -210,7 +212,6 @@ int fdt_next_subnode(const void *fdt, int offset); > /**********************************************************************/ > /* General functions */ > /**********************************************************************/ > - This looks to be an unrelated change. > #define fdt_get_header(fdt, field) \ > (fdt32_to_cpu(((const struct fdt_header *)(fdt))->field)) > #define fdt_magic(fdt) (fdt_get_header(fdt, magic)) > @@ -638,8 +639,10 @@ const void *fdt_getprop_by_offset(const void *fdt, int offset, > * Identical to fdt_getprop(), but only examine the first namelen > * characters of name for matching the property name. > */ > +#ifndef SWIG /* Not available in Python */ > const void *fdt_getprop_namelen(const void *fdt, int nodeoffset, > const char *name, int namelen, int *lenp); > +#endif > static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset, > const char *name, int namelen, > int *lenp) You might as well exclude all the rest of the 'namelen' functions while you're at it. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature