1 /* 2 * Memory and resource allocation utility functions. 3 * 4 * Copyright (C) 2018, 2019, 2023 Paul Boddie <paul@boddie.org.uk> 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License as 8 * published by the Free Software Foundation; either version 2 of 9 * the License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 * Boston, MA 02110-1301, USA 20 */ 21 22 #pragma once 23 24 #include <l4/io/io.h> 25 #include <l4/re/env.h> 26 #include <l4/util/util.h> 27 28 EXTERN_C_BEGIN 29 30 int find_resource(l4vbus_device_handle_t *device, l4vbus_resource_t *resource, 31 enum l4vbus_resource_type_t type); 32 33 int get_device(char const *hid, l4io_device_handle_t *dh, 34 l4io_resource_handle_t *rh); 35 36 int get_irq(char const *hid, l4_uint32_t *start, l4_uint32_t *end); 37 38 int get_resource(l4io_device_handle_t dh, l4io_resource_t *res, 39 enum l4vbus_resource_type_t type); 40 41 int get_memory(char const *hid, l4_addr_t *start, l4_addr_t *end); 42 43 int get_memory_complete(char const *hid, l4_addr_t *start, l4_addr_t *end, 44 l4_addr_t *phys_start, l4_addr_t *phys_end); 45 46 EXTERN_C_END