~jonathank89/burg/burg-percise

« back to all changes in this revision

Viewing changes to include/grub/reader.h

merge mainline into mips

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#ifndef GRUB_READER_HEADER
21
21
#define GRUB_READER_HEADER      1
22
22
 
23
 
#include <grub/types.h>
24
23
#include <grub/err.h>
25
 
#include <grub/handler.h>
26
24
 
27
25
typedef grub_err_t (*grub_reader_getline_t) (char **, int);
28
26
 
29
 
struct grub_reader
30
 
{
31
 
  /* The next reader.  */
32
 
  struct grub_parser *next;
33
 
 
34
 
  /* The reader name.  */
35
 
  const char *name;
36
 
 
37
 
  /* Initialize the reader.  */
38
 
  grub_err_t (*init) (void);
39
 
 
40
 
  /* Clean up the reader.  */
41
 
  grub_err_t (*fini) (void);
42
 
 
43
 
  grub_reader_getline_t read_line;
44
 
};
45
 
typedef struct grub_reader *grub_reader_t;
46
 
 
47
 
extern struct grub_handler_class EXPORT_VAR(grub_reader_class);
48
 
 
49
 
grub_err_t EXPORT_FUNC(grub_reader_loop) (grub_reader_getline_t getline);
50
 
 
51
 
static inline void
52
 
grub_reader_register (const char *name __attribute__ ((unused)),
53
 
                      grub_reader_t reader)
54
 
{
55
 
  grub_handler_register (&grub_reader_class, GRUB_AS_HANDLER (reader));
56
 
}
57
 
 
58
 
static inline void
59
 
grub_reader_unregister (grub_reader_t reader)
60
 
{
61
 
  grub_handler_unregister (&grub_reader_class, GRUB_AS_HANDLER (reader));
62
 
}
63
 
 
64
 
static inline grub_reader_t
65
 
grub_reader_get_current (void)
66
 
{
67
 
  return (grub_reader_t) grub_reader_class.cur_handler;
68
 
}
69
 
 
70
 
static inline grub_err_t
71
 
grub_reader_set_current (grub_reader_t reader)
72
 
{
73
 
  return grub_handler_set_current (&grub_reader_class,
74
 
                                   GRUB_AS_HANDLER (reader));
75
 
}
76
 
 
77
 
void grub_register_rescue_reader (void);
 
27
void grub_rescue_run (void);
78
28
 
79
29
#endif /* ! GRUB_READER_HEADER */