Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:09

0001 /*
0002  * Copyright (c) 2006 Jakub Jermar
0003  * All rights reserved.
0004  *
0005  * Redistribution and use in source and binary forms, with or without
0006  * modification, are permitted provided that the following conditions
0007  * are met:
0008  *
0009  * - Redistributions of source code must retain the above copyright
0010  *   notice, this list of conditions and the following disclaimer.
0011  * - Redistributions in binary form must reproduce the above copyright
0012  *   notice, this list of conditions and the following disclaimer in the
0013  *   documentation and/or other materials provided with the distribution.
0014  * - The name of the author may not be used to endorse or promote products
0015  *   derived from this software without specific prior written permission.
0016  *
0017  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
0018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
0019  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
0020  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
0021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
0022  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
0023  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
0024  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
0025  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
0026  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0027  */
0028 
0029 #ifndef BOOT_OFW_TREE_H_
0030 #define BOOT_OFW_TREE_H_
0031 
0032 #include <boot/types.h>
0033 #include <boot/ofw.h>
0034 
0035 
0036 /** Memory representation of OpenFirmware device tree node property. */
0037 typedef struct {
0038     char name[OFW_TREE_PROPERTY_MAX_NAMELEN];
0039     size_t size;
0040     void *value;
0041 } ofw_tree_property_t;
0042 
0043 /** Memory representation of OpenFirmware device tree node. */
0044 typedef struct ofw_tree_node {
0045     struct ofw_tree_node *parent;
0046     struct ofw_tree_node *peer;
0047     struct ofw_tree_node *child;
0048     
0049     uint32_t node_handle;           /**< Old OpenFirmware node handle. */
0050     
0051     char *da_name;                  /**< Disambigued name. */
0052     
0053     unsigned int properties;        /**< Number of properties. */
0054     ofw_tree_property_t *property;
0055     
0056     void *device;                   /**< Member used solely by the kernel. */
0057 } ofw_tree_node_t;
0058 
0059 extern ofw_tree_node_t *ofw_tree_build(void);
0060 
0061 #endif