haiku/headers/private/kernel/bus.h

40 lines
709 B
C
Executable File

/*
** Copyright 2001, Travis Geiselbrecht. All rights reserved.
** Distributed under the terms of the NewOS License.
*/
#ifndef KERNEL_BUS_H
#define KERNEL_BUS_H
#include <module.h>
struct kernel_args;
int bus_init(struct kernel_args *ka);
int bus_man_init(struct kernel_args *ka);
int bus_register_bus(const char *path);
typedef struct id_list {
uint32 num_ids;
uint32 id[0];
} id_list;
#define MAX_DEV_IO_RANGES 8
typedef struct device {
uint32 vendor_id;
uint32 device_id;
uint32 irq;
addr base[MAX_DEV_IO_RANGES];
addr size[MAX_DEV_IO_RANGES];
char dev_path[256];
} device;
int bus_find_device(int n, id_list *vendor_ids, id_list *device_ids, device *dev);
#endif /* KERNEL_BUS_H */