/[grub]/grub2/include/grub/powerpc/ieee1275/ieee1275.h
ViewVC logotype

Diff of /grub2/include/grub/powerpc/ieee1275/ieee1275.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.18 by hollisb, Tue Jun 21 02:33:51 2005 UTC revision 1.19 by hollisb, Wed Aug 3 22:53:50 2005 UTC
# Line 21  Line 21 
21  #ifndef GRUB_IEEE1275_MACHINE_HEADER  #ifndef GRUB_IEEE1275_MACHINE_HEADER
22  #define GRUB_IEEE1275_MACHINE_HEADER    1  #define GRUB_IEEE1275_MACHINE_HEADER    1
23    
 #include <stdint.h>  
 #include <grub/err.h>  
24  #include <grub/types.h>  #include <grub/types.h>
25    
26  /* Maps a device alias to a pathname.  */  typedef grub_uint32_t grub_ieee1275_cell_t;
 struct grub_ieee1275_devalias  
 {  
   char *name;  
   char *path;  
   char *type;  
 };  
   
 struct grub_ieee1275_mem_region  
 {  
   unsigned int start;  
   unsigned int size;  
 };  
   
 #ifndef IEEE1275_CALL_ENTRY_FN  
 #define IEEE1275_CALL_ENTRY_FN(args) (*grub_ieee1275_entry_fn) (args)  
 #endif  
   
 /* All backcalls to the firmware is done by calling an entry function  
    which was passed to us from the bootloader.  When doing the backcall,  
    a structure is passed which specifies what the firmware should do.    
    NAME is the requested service.  NR_INS and NR_OUTS is the number of  
    passed arguments and the expected number of return values, resp. */  
 struct grub_ieee1275_common_hdr  
 {  
   char *name;  
   int nr_ins;  
   int nr_outs;  
 };  
   
 #define INIT_IEEE1275_COMMON(p, xname, xins, xouts) \  
   (p)->name = xname; (p)->nr_ins = xins; (p)->nr_outs = xouts  
   
 /* FIXME jrydberg: is this correct cell types? */  
 typedef intptr_t grub_ieee1275_ihandle_t;  
 typedef intptr_t grub_ieee1275_phandle_t;  
   
 extern grub_ieee1275_phandle_t grub_ieee1275_chosen;  
 extern grub_ieee1275_phandle_t EXPORT_VAR(grub_ieee1275_chosen);  
 extern intptr_t (*grub_ieee1275_entry_fn) (void *);  
 extern intptr_t (* EXPORT_VAR(grub_ieee1275_entry_fn)) (void *);  
   
 enum grub_ieee1275_flag  
 {  
   /* Old World firmware fails seek when "dev:0" is opened.  */  
   GRUB_IEEE1275_FLAG_NO_PARTITION_0,  
   
   /* Apple firmware runs in translated mode and requires use of the "map"  
      method.  Other firmware runs in untranslated mode and doesn't like "map"  
      calls.  */  
   GRUB_IEEE1275_FLAG_REAL_MODE,  
   
   /* CHRP specifies partitions are numbered from 1 (partition 0 refers to the  
      whole disk). However, CodeGen firmware numbers partitions from 0.  */  
   GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS,  
 };  
   
 extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag);  
 extern void EXPORT_FUNC(grub_ieee1275_set_flag) (enum grub_ieee1275_flag flag);  
   
   
   
 uint32_t EXPORT_FUNC(grub_ieee1275_decode_int_4) (unsigned char *p);  
 int EXPORT_FUNC(grub_ieee1275_finddevice) (char *name,  
                                            grub_ieee1275_phandle_t *phandlep);  
 int EXPORT_FUNC(grub_ieee1275_get_property) (grub_ieee1275_phandle_t handle,  
                                              const char *property, void *buf,  
                                              grub_size_t size,  
                                              grub_size_t *actual);  
 int EXPORT_FUNC(grub_ieee1275_next_property) (int handle, char *prev_prop,  
                                               char *prop, int *flags);  
 int EXPORT_FUNC(grub_ieee1275_get_property_length)  
      (grub_ieee1275_phandle_t handle, const char *prop, grub_size_t *length);  
 int EXPORT_FUNC(grub_ieee1275_instance_to_package)  
      (grub_ieee1275_ihandle_t ihandle, grub_ieee1275_phandle_t *phandlep);  
 int EXPORT_FUNC(grub_ieee1275_package_to_path) (grub_ieee1275_phandle_t phandle,  
                                                 char *path, grub_size_t len,  
                                                 grub_size_t *actual);  
 int EXPORT_FUNC(grub_ieee1275_instance_to_path)  
      (grub_ieee1275_ihandle_t ihandle, char *path, grub_size_t len,  
       grub_size_t *actual);  
 int EXPORT_FUNC(grub_ieee1275_write) (grub_ieee1275_ihandle_t ihandle,  
                                       void *buffer, grub_size_t len,  
                                       grub_size_t *actualp);  
 int EXPORT_FUNC(grub_ieee1275_read) (grub_ieee1275_ihandle_t ihandle,  
                                      void *buffer, grub_size_t len,  
                                      grub_size_t *actualp);  
 int EXPORT_FUNC(grub_ieee1275_seek) (grub_ieee1275_ihandle_t ihandle,  
                                      int pos_hi, int pos_lo, int *result);  
 int EXPORT_FUNC(grub_ieee1275_peer) (grub_ieee1275_phandle_t node,  
                                      grub_ieee1275_phandle_t *result);  
 int EXPORT_FUNC(grub_ieee1275_child) (grub_ieee1275_phandle_t node,  
                                       grub_ieee1275_phandle_t *result);  
 int EXPORT_FUNC(grub_ieee1275_parent) (grub_ieee1275_phandle_t node,  
                                        grub_ieee1275_phandle_t *result);  
 int EXPORT_FUNC(grub_ieee1275_interpret) (const char *command, int *catch);  
 int EXPORT_FUNC(grub_ieee1275_enter) (void);  
 int EXPORT_FUNC(grub_ieee1275_exit) (void);  
 int EXPORT_FUNC(grub_ieee1275_open) (char *node,  
                                      grub_ieee1275_ihandle_t *result);  
 int EXPORT_FUNC(grub_ieee1275_close) (grub_ieee1275_ihandle_t ihandle);  
 int EXPORT_FUNC(grub_ieee1275_claim) (grub_addr_t addr, grub_size_t size,  
                                       unsigned int align, grub_addr_t *result);  
 int EXPORT_FUNC(grub_ieee1275_release) (grub_addr_t addr, grub_size_t size);  
 int EXPORT_FUNC(grub_ieee1275_set_property) (grub_ieee1275_phandle_t phandle,  
                                              const char *propname, void *buf,  
                                              grub_size_t size,  
                                              grub_size_t *actual);  
 int EXPORT_FUNC(grub_ieee1275_set_color) (grub_ieee1275_ihandle_t ihandle,  
                                           int index, int r, int g, int b);  
 int EXPORT_FUNC(grub_ieee1275_milliseconds) (grub_uint32_t *msecs);  
   
   
 grub_err_t EXPORT_FUNC(grub_devalias_iterate)  
      (int (*hook) (struct grub_ieee1275_devalias *alias));  
 grub_err_t EXPORT_FUNC(grub_children_iterate) (char *devpath,  
      int (*hook) (struct grub_ieee1275_devalias *alias));  
 int EXPORT_FUNC(grub_claimmap) (grub_addr_t addr, grub_size_t size);  
   
 void EXPORT_FUNC(abort) (void);  
 void EXPORT_FUNC (grub_reboot) (void);  
 void EXPORT_FUNC (grub_halt) (void);  
   
 char *EXPORT_FUNC(grub_ieee1275_encode_devname) (const char *path);  
 char *EXPORT_FUNC(grub_ieee1275_get_filename) (const char *path);  
27    
28  #endif /* ! GRUB_IEEE1275_MACHINE_HEADER */  #endif /* ! GRUB_IEEE1275_MACHINE_HEADER */

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26