Add serial on ARC platform.

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2013-04-25 22:40:03 +02:00
parent 88d2f3022e
commit b04b5990df
11 changed files with 279 additions and 71 deletions

View file

@ -79,6 +79,12 @@ struct grub_arc_display_status
grub_arc_uchar_t reverse_video;
};
enum
{
GRUB_ARC_COMPONENT_FLAG_OUT = 0x40,
GRUB_ARC_COMPONENT_FLAG_IN = 0x20,
};
struct grub_arc_component
{
grub_arc_enum_t class;
@ -262,6 +268,11 @@ int EXPORT_FUNC (grub_arc_iterate_devs) (grub_arc_iterate_devs_hook_t hook,
void *hook_data,
int alt_names);
char *EXPORT_FUNC (grub_arc_alt_name_to_norm) (const char *name, const char *suffix);
int EXPORT_FUNC (grub_arc_is_device_serial) (const char *name, int alt_names);
#define FOR_ARC_CHILDREN(comp, parent) for (comp = GRUB_ARC_FIRMWARE_VECTOR->getchild (parent); comp; comp = GRUB_ARC_FIRMWARE_VECTOR->getpeer (comp))
extern void grub_arcdisk_init (void);

View file

@ -30,6 +30,9 @@
#ifdef GRUB_MACHINE_IEEE1275
#include <grub/ieee1275/ieee1275.h>
#endif
#ifdef GRUB_MACHINE_ARC
#include <grub/arc/arc.h>
#endif
struct grub_serial_port;
struct grub_serial_config;
@ -104,6 +107,13 @@ struct grub_serial_port
#endif
#ifdef GRUB_MACHINE_EFI
struct grub_efi_serial_io_interface *interface;
#endif
#ifdef GRUB_MACHINE_ARC
struct
{
grub_arc_fileno_t handle;
int handle_valid;
};
#endif
};
grub_term_output_t term_out;
@ -170,6 +180,12 @@ void grub_ofserial_init (void);
void
grub_efiserial_init (void);
#endif
#ifdef GRUB_MACHINE_ARC
void
grub_arcserial_init (void);
const char *
grub_arcserial_add_port (const char *path);
#endif
struct grub_serial_port *grub_serial_find (const char *name);
extern struct grub_serial_driver grub_ns8250_driver;