Chameleon

Chameleon Svn Source Tree

Root/branches/cparm/i386/libsaio/device_inject.h

1/*
2 *Copyright 2009 Jasmin Fazlic All rights reserved.
3 */
4/*
5 *Cleaned and merged by iNDi
6 */
7
8#ifndef __LIBSAIO_DEVICE_INJECT_H
9#define __LIBSAIO_DEVICE_INJECT_H
10
11#define DP_ADD_TEMP_VAL(dev, val) devprop_add_value(dev, (char*)val[0], (uint8_t*)val[1], strlen(val[1]) + 1)
12#define DP_ADD_TEMP_VAL_DATA(dev, val) devprop_add_value(dev, (char*)val.name, (uint8_t*)val.data, val.size)
13#define MAX_PCI_DEV_PATHS 4
14#define MAX_STRING_NUM_ENTRIES 100
15
16extern struct DevPropString *string;
17extern uint8_t *stringdata;
18extern uint32_t stringlength;
19extern uint32_t devices_number;
20extern void setupDeviceProperties(Node *node);
21
22#define DEV_PATH_HEADER\
23uint8_ttype;\
24uint8_tsubtype;\
25uint16_tlength;
26
27struct ACPIDevPath {
28//uint8_ttype;// = 2 ACPI device-path
29//uint8_tsubtype;// = 1 ACPI Device-path
30//uint16_t length;// = 0x0c
31DEV_PATH_HEADER
32uint32_t_HID;// = 0xD041030A ?
33uint32_t_UID;// = 0x00000000 PCI ROOT
34};
35
36struct PCIDevPath {
37//uint8_ttype;// = 1 Hardware device-path
38//uint8_tsubtype;// = 1 PCI
39//uint16_t length;// = 6
40DEV_PATH_HEADER
41uint8_tfunction;// pci func number
42uint8_tdevice;// pci dev number
43};
44
45struct DevicePathEnd {
46//uint8_ttype;// = 0x7f
47//uint8_tsubtype;// = 0xff
48//uint16_tlength;// = 4;
49DEV_PATH_HEADER
50};
51
52struct DevPropDevice {
53uint32_t length;
54uint16_t numentries;
55uint16_t WHAT2;// 0x0000 ?
56struct ACPIDevPath acpi_dev_path;// = 0x02010c00 0xd041030a
57struct PCIDevPath pci_dev_path[MAX_PCI_DEV_PATHS]; // = 0x01010600 func dev
58struct DevicePathEnd path_end;// = 0x7fff0400
59uint8_t *data;
60
61// ------------------------
62uint8_t num_pci_devpaths;
63struct DevPropString *string;
64// ------------------------
65};
66
67struct DevPropString {
68uint32_t length;
69uint32_t WHAT2;// 0x01000000 ?
70uint16_t numentries;
71uint16_t WHAT3;// 0x0000 ?
72struct DevPropDevice *entries;
73};
74
75char*efi_inject_get_devprop_string(uint32_t *len);
76//intdevprop_add_network_template(struct DevPropDevice *device, uint16_t vendor_id);
77struct DevPropString*devprop_create_string(void);
78struct DevPropDevice*devprop_add_device(struct DevPropString *string, char *path);
79intdevprop_add_value(struct DevPropDevice *device, char *nm, uint8_t *vl, uint32_t len);
80char*devprop_generate_string(struct DevPropString *string);
81voiddevprop_free_string(struct DevPropString *string);
82
83#endif /* !__LIBSAIO_DEVICE_INJECT_H */
84

Archive Download this file

Revision: 1972