#include <devices/generic.h>
-#include <geekos/io.h>
#include <palacios/vmm.h>
#include <palacios/vmm_types.h>
-
+#include <geekos/io.h>
#define GENERIC_DEBUG 1
#if GENERIC_DEBUG
-#define GENERIC_DEBUG_PRINT(first, rest...) do { SerialPrint(first, ## rest ); } while (0)
+#define GENERIC_DEBUG_PRINT(first, rest...) PrintDebug(first, ##rest)
#else
#define GENERIC_DEBUG_PRINT(first, rest...)
#endif
#define MEM_HOOKS 0 // not yet implmented in device model
#define IRQ_HOOKS 0 // not yet implemented in device model
-extern struct vmm_os_hooks *os_hooks;
-
-extern void SerialPrint(const char *format, ...);
-
-
-
struct generic_internal {
generic_port_range_type *port_ranges;
uint_t num_port_ranges;
generic_irq_range_type irq_ranges[],
uint_t num_irq_ranges)
{
- struct generic_internal * generic_state = os_hooks->malloc(sizeof(struct generic_internal));
+ struct generic_internal * generic_state = (struct generic_internal *)V3_Malloc(sizeof(struct generic_internal));
generic_state->num_port_ranges=num_port_ranges;
if (num_port_ranges>0) {
- generic_state->port_ranges = os_hooks->malloc(sizeof(generic_address_range_type)*num_port_ranges);
+ generic_state->port_ranges = V3_Malloc(sizeof(generic_address_range_type)*num_port_ranges);
memcpy(generic_state->port_ranges,port_ranges,sizeof(generic_port_range_type)*num_port_ranges);
} else {
generic_state->port_ranges=NULL;
generic_state->num_address_ranges=num_address_ranges;
if (num_address_ranges>0) {
- generic_state->address_ranges = os_hooks->malloc(sizeof(generic_address_range_type)*num_address_ranges);
+ generic_state->address_ranges = V3_Malloc(sizeof(generic_address_range_type)*num_address_ranges);
memcpy(generic_state->address_ranges,address_ranges,sizeof(generic_address_range_type)*num_address_ranges);
} else {
generic_state->address_ranges=NULL;
}
generic_state->num_irq_ranges=num_irq_ranges;
if (num_irq_ranges>0) {
- generic_state->irq_ranges = os_hooks->malloc(sizeof(generic_address_range_type)*num_irq_ranges);
+ generic_state->irq_ranges = V3_Malloc(sizeof(generic_address_range_type)*num_irq_ranges);
memcpy(generic_state->irq_ranges,irq_ranges,sizeof(generic_irq_range_type)*num_port_ranges);
} else {
generic_state->irq_ranges=NULL;
#define KEYBOARD_DEBUG 1
#if KEYBOARD_DEBUG
-#define KEYBOARD_DEBUG_PRINT(first, rest...) do { SerialPrint(first, ## rest ); } while (0)
+#define KEYBOARD_DEBUG_PRINT(first, rest...) PrintDebug(first, ##rest)
#else
#define KEYBOARD_DEBUG_PRINT(first, rest...)
#endif
-extern struct vmm_os_hooks *os_hooks;
-
-extern void SerialPrint(const char *format, ...);
-
-
-
#define KEYBOARD_DATA_REG 0x60
#define KEYBOARD_CONTROL_REG 0x64
KEYBOARD_DEBUG_PRINT("keyboard: creating >1 keyboard device. This will probably fail!\n");
}
- struct keyboard_internal * keyboard_state = os_hooks->malloc(sizeof(struct keyboard_internal));
+ struct keyboard_internal * keyboard_state = (struct keyboard_internal *)V3_Malloc(sizeof(struct keyboard_internal));
struct vm_device *device = create_device("KEYBOARD", &dev_ops, keyboard_state);