49
52
typedef struct grub_file *grub_file_t;
54
/* Filters with lower ID are executed first. */
55
typedef enum grub_file_filter_id
57
GRUB_FILE_FILTER_GZIO,
58
GRUB_FILE_FILTER_XZIO,
60
GRUB_FILE_FILTER_COMPRESSION_FIRST = GRUB_FILE_FILTER_GZIO,
61
GRUB_FILE_FILTER_COMPRESSION_LAST = GRUB_FILE_FILTER_XZIO,
62
} grub_file_filter_id_t;
64
typedef grub_file_t (*grub_file_filter_t) (grub_file_t in);
66
extern grub_file_filter_t EXPORT_VAR(grub_file_filters_all)[GRUB_FILE_FILTER_MAX];
67
extern grub_file_filter_t EXPORT_VAR(grub_file_filters_enabled)[GRUB_FILE_FILTER_MAX];
70
grub_file_filter_register (grub_file_filter_id_t id, grub_file_filter_t filter)
72
grub_file_filters_all[id] = filter;
73
grub_file_filters_enabled[id] = filter;
77
grub_file_filter_unregister (grub_file_filter_id_t id)
79
grub_file_filters_all[id] = 0;
80
grub_file_filters_enabled[id] = 0;
84
grub_file_filter_disable (grub_file_filter_id_t id)
86
grub_file_filters_enabled[id] = 0;
90
grub_file_filter_disable_compression (void)
92
grub_file_filter_id_t id;
94
for (id = GRUB_FILE_FILTER_COMPRESSION_FIRST;
95
id <= GRUB_FILE_FILTER_COMPRESSION_LAST; id++)
96
grub_file_filters_enabled[id] = 0;
51
99
/* Get a device name from NAME. */
52
100
char *EXPORT_FUNC(grub_file_get_device_name) (const char *name);
57
105
grub_off_t EXPORT_FUNC(grub_file_seek) (grub_file_t file, grub_off_t offset);
58
106
grub_err_t EXPORT_FUNC(grub_file_close) (grub_file_t file);
108
/* Return value of grub_file_size() in case file size is unknown. */
109
#define GRUB_FILE_SIZE_UNKNOWN 0xffffffffffffffffULL
60
111
static inline grub_off_t
61
112
grub_file_size (const grub_file_t file)