diff options
Diffstat (limited to 'lib/libfdt/libfdt.swig')
-rw-r--r-- | lib/libfdt/libfdt.swig | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/lib/libfdt/libfdt.swig b/lib/libfdt/libfdt.swig deleted file mode 100644 index b24c72b1a2..0000000000 --- a/lib/libfdt/libfdt.swig +++ /dev/null @@ -1,113 +0,0 @@ -/* File: libfdt.i */ -%module libfdt - -%{ -#define SWIG_FILE_WITH_INIT -#include "libfdt.h" -%} - -%pythoncode %{ -def Raise(errnum): - raise ValueError('Error %s' % fdt_strerror(errnum)) - -def Name(fdt, offset): - name, len = fdt_get_name(fdt, offset) - return name - -def String(fdt, offset): - offset = fdt32_to_cpu(offset) - name = fdt_string(fdt, offset) - return name - -def swap32(x): - return (((x << 24) & 0xFF000000) | - ((x << 8) & 0x00FF0000) | - ((x >> 8) & 0x0000FF00) | - ((x >> 24) & 0x000000FF)) - -def fdt32_to_cpu(x): - return swap32(x) - -def Data(prop): - set_prop(prop) - return get_prop_data() -%} - -%include "typemaps.i" -%include "cstring.i" - -%typemap(in) void* = char*; - -typedef int fdt32_t; - -struct fdt_property { - fdt32_t tag; - fdt32_t len; - fdt32_t nameoff; - char data[0]; -}; - -/* - * This is a work-around since I'm not sure of a better way to copy out the - * contents of a string. This is used in dtoc/GetProps(). The intent is to - * pass in a pointer to a property and access the data field at the end of - * it. Ideally the Data() function above would be able to do this directly, - * but I'm not sure how to do that. - */ -#pragma SWIG nowarn=454 -%inline %{ - static struct fdt_property *cur_prop; - - void set_prop(struct fdt_property *prop) { - cur_prop = prop; - } -%} - -%cstring_output_allocate_size(char **s, int *sz, free(*$1)); -%inline %{ - void get_prop_data(char **s, int *sz) { - *sz = fdt32_to_cpu(cur_prop->len); - *s = (char *)malloc(*sz); - if (!*s) - *sz = 0; - else - memcpy(*s, cur_prop + 1, *sz); - } -%} - -%typemap(in) (const void *) { - if (!PyByteArray_Check($input)) { - SWIG_exception_fail(SWIG_TypeError, "in method '" "$symname" "', argument " - "$argnum"" of type '" "$type""'"); - } - $1 = (void *) PyByteArray_AsString($input); -} - -const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int checklen); -int fdt_path_offset(const void *fdt, const char *path); -int fdt_first_property_offset(const void *fdt, int nodeoffset); -int fdt_next_property_offset(const void *fdt, int offset); -const char *fdt_strerror(int errval); -const struct fdt_property *fdt_get_property_by_offset(const void *fdt, - int offset, - int *OUTPUT); -const char *fdt_get_name(const void *fdt, int nodeoffset, int *OUTPUT); -const char *fdt_string(const void *fdt, int stroffset); -int fdt_first_subnode(const void *fdt, int offset); -int fdt_next_subnode(const void *fdt, int offset); - -%typemap(in) (void *) { - if (!PyByteArray_Check($input)) { - SWIG_exception_fail(SWIG_TypeError, "in method '" "$symname" "', argument " - "$argnum"" of type '" "$type""'"); - } - $1 = PyByteArray_AsString($input); -} - -int fdt_delprop(void *fdt, int nodeoffset, const char *name); - -const char *fdt_strerror(int errval); -int fdt_pack(void *fdt); - -int fdt_totalsize(const void *fdt); -int fdt_off_dt_struct(const void *fdt); |