/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 2011 Free Software Foundation, Inc.
*
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* GRUB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GRUB_ARC_HEADER
typedef unsigned grub_arc_enum_t;
typedef unsigned long grub_arc_ulong_t;
typedef long grub_arc_long_t;
typedef unsigned short grub_arc_ushort_t;
typedef unsigned char grub_arc_uchar_t;
struct grub_arc_memory_descriptor
{
};
enum grub_arc_memory_type
{
#ifdef GRUB_CPU_WORDS_BIGENDIAN
#endif
#ifndef GRUB_CPU_WORDS_BIGENDIAN
#endif
struct grub_arc_timeinfo
{
};
struct grub_arc_display_status
{
};
struct grub_arc_component
{
const char *idstr;
};
enum
{
#ifdef GRUB_CPU_WORDS_BIGENDIAN
#else
#endif
};
struct grub_arc_fileinfo
{
};
struct grub_arc_firmware_vector
{
/* 0x00. */
void *load;
void *invoke;
void *execute;
void *halt;
/* 0x10. */
void (*powerdown) (void);
void (*restart) (void);
void (*reboot) (void);
void (*exit) (void);
/* 0x20. */
void *reserved1;
void *getparent;
/* 0x30. */
void *getconfigurationdata;
void *addchild;
void *deletecomponent;
void *getcomponent;
/* 0x40. */
void *saveconfiguration;
void *getsystemid;
struct grub_arc_memory_descriptor *(*getmemorydescriptor) (struct grub_arc_memory_descriptor *current);
void *reserved2;
/* 0x50. */
void *getrelativetime;
void *getdirectoryentry;
/* 0x60. */
/* 0x70. */
void *mount;
void *getenvironmentvariable;
void *setenvironmentvariable;
/* 0x80. */
struct grub_arc_fileinfo *info);
void *setfileinformation;
void *flushallcaches;
void *testunicodecharacter;
/* 0x90. */
};
struct grub_arc_adapter
{
void *adapter_vector;
};
{
void *restartblock;
void *debugblock;
void *gevector;
void *utlbmissvector;
void *private_vector;
};
#define GRUB_ARC_STDIN 0
int EXPORT_FUNC (grub_arc_iterate_devs) (int (*hook) (const char *name, const struct grub_arc_component *comp), 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);
extern void grub_arcdisk_fini (void);
#endif