VirtualBox

source: vbox/trunk/src/VBox/Devices/PC/Etherboot-src/include/dev.h@ 16565

Last change on this file since 16565 was 1, checked in by vboxsync, 55 years ago

import

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1#ifndef DEV_H
2#define DEV_H
3
4#include "isa.h"
5#include "pci.h"
6
7/* Need to check the packing of this struct if Etherboot is ported */
8struct dev_id
9{
10 unsigned short vendor_id;
11 unsigned short device_id;
12 unsigned char bus_type;
13#define PCI_BUS_TYPE 1
14#define ISA_BUS_TYPE 2
15};
16
17/* Dont use sizeof, that will include the padding */
18#define DEV_ID_SIZE 8
19
20
21struct pci_probe_state
22{
23#ifdef CONFIG_PCI
24 struct pci_device dev;
25 int advance;
26#else
27 int dummy;
28#endif
29};
30struct isa_probe_state
31{
32#ifdef CONFIG_ISA
33 const struct isa_driver *driver;
34 int advance;
35#else
36 int dummy;
37#endif
38};
39
40union probe_state
41{
42 struct pci_probe_state pci;
43 struct isa_probe_state isa;
44};
45
46struct dev
47{
48 void (*disable)P((struct dev *));
49 struct dev_id devid; /* device ID string (sent to DHCP server) */
50 int index; /* Index of next device on this controller to probe */
51 int type; /* Type of device I am probing for */
52 int how_probe; /* First, next or awake */
53 int to_probe; /* Flavor of device I am probing */
54 int failsafe; /* Failsafe probe requested */
55 int type_index; /* Index of this device (within type) */
56#define PROBE_NONE 0
57#define PROBE_PCI 1
58#define PROBE_ISA 2
59 union probe_state state;
60};
61
62
63#define NIC_DRIVER 0
64#define DISK_DRIVER 1
65#define FLOPPY_DRIVER 2
66
67#define BRIDGE_DRIVER 1000
68
69#define PROBE_FIRST (-1)
70#define PROBE_NEXT 0
71#define PROBE_AWAKE 1 /* After calling disable bring up the same device */
72
73/* The probe result codes are selected
74 * to allow them to be fed back into the probe
75 * routine and get a successful probe.
76 */
77#define PROBE_FAILED PROBE_FIRST
78#define PROBE_WORKED PROBE_NEXT
79
80extern int probe(struct dev *dev);
81extern void disable(struct dev *dev);
82
83/* Boot option values
84 * option & BOOT_TYPE_MASK should equal a driver for probing
85 */
86
87#define BOOT_NIC 0x0 /* Boot from a nic */
88#define BOOT_DISK 0x1 /* Boot from disk */
89#define BOOT_FLOPPY 0x2 /* Boot from a floppy */
90
91#define BOOT_NOTHING 0x3 /* Last valid boot choice */
92
93/* Do magic failsafe boot processing */
94#define BOOT_FAILSAFE 0x8
95
96#define BOOT_BITS 4
97#define BOOT_MASK ((1 << (BOOT_BITS)) - 1)
98#define BOOT_TYPE_MASK ((1 << (BOOT_BITS - 1)) - 1)
99
100#define MAX_BOOT_ENTRIES 3
101
102#define BOOT_ALL_VALUE (1<<BOOT_FIRST|1<<BOOT_SECOND|1<<BOOT_THIRD)
103
104/* These could be customised for different languages perhaps */
105#if BOOT_ALL_VALUE&(1<<BOOT_DISK)
106#define BOOT_DISK_PROMPT "(D)isk "
107#else
108#define BOOT_DISK_PROMPT
109#endif
110
111#if BOOT_ALL_VALUE&(1<<BOOT_FLOPPY)
112#define BOOT_FLOPPY_PROMPT "(F)loppy "
113#else
114#define BOOT_FLOPPY_PROMPT
115#endif
116
117#define ASK_PROMPT \
118 "Boot from (N)etwork " BOOT_DISK_PROMPT BOOT_FLOPPY_PROMPT "or (Q)uit? "
119
120#define ANS_NETWORK 'N'
121#define ANS_DISK 'D'
122#define ANS_FLOPPY 'F'
123#define ANS_QUIT 'Q'
124#define ANS_DEFAULT '\n'
125
126#endif /* DEV_H */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette