* grub-core/kern/emu/hostdisk.c: Disentagle into a series of OS-specific
files rather than one file with loads of #if's. * util/getroot.c: Likewise.
This commit is contained in:
parent
287faafe8d
commit
3ff4063dd3
30 changed files with 4039 additions and 2364 deletions
|
@ -19,6 +19,8 @@
|
|||
#ifndef GRUB_UTIL_GETROOT_HEADER
|
||||
#define GRUB_UTIL_GETROOT_HEADER 1
|
||||
|
||||
#include <grub/types.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
enum grub_dev_abstraction_types {
|
||||
|
@ -30,12 +32,13 @@ enum grub_dev_abstraction_types {
|
|||
};
|
||||
|
||||
char *grub_find_device (const char *dir, dev_t dev);
|
||||
void grub_util_pull_device (const char *osname);
|
||||
char **grub_guess_root_devices (const char *dir);
|
||||
int grub_util_get_dev_abstraction (const char *os_dev);
|
||||
char *grub_util_get_grub_dev (const char *os_dev);
|
||||
char *grub_make_system_path_relative_to_its_root (const char *path);
|
||||
const char *grub_util_check_block_device (const char *blk_dev);
|
||||
const char *grub_util_check_char_device (const char *blk_dev);
|
||||
char *grub_util_get_grub_dev (const char *os_dev);
|
||||
#ifdef __linux__
|
||||
char **grub_util_raid_getmembers (const char *name, int bootable);
|
||||
#endif
|
||||
|
@ -44,4 +47,57 @@ void grub_util_follow_gpart_up (const char *name, grub_disk_addr_t *off_out,
|
|||
char **name_out);
|
||||
#endif
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifdef __linux__
|
||||
char **
|
||||
grub_find_root_devices_from_mountinfo (const char *dir, char **relroot);
|
||||
#endif
|
||||
#if defined (__GNU__)
|
||||
char *
|
||||
grub_util_find_hurd_root_device (const char *path);
|
||||
#endif
|
||||
|
||||
/* Devmapper functions provided by getroot_devmapper.c. */
|
||||
void
|
||||
grub_util_pull_devmapper (const char *os_dev);
|
||||
int
|
||||
grub_util_device_is_mapped_stat (struct stat *st);
|
||||
void grub_util_devmapper_cleanup (void);
|
||||
enum grub_dev_abstraction_types
|
||||
grub_util_get_dm_abstraction (const char *os_dev);
|
||||
char *
|
||||
grub_util_get_vg_uuid (const char *os_dev);
|
||||
char *
|
||||
grub_util_devmapper_part_to_disk (struct stat *st,
|
||||
int *is_part, const char *os_dev);
|
||||
char *
|
||||
grub_util_get_devmapper_grub_dev (const char *os_dev);
|
||||
|
||||
/* Functions provided by getroot.c. */
|
||||
#if !defined (__MINGW32__) && !defined (__CYGWIN__) && !defined (__GNU__)
|
||||
#include <sys/types.h>
|
||||
pid_t
|
||||
grub_util_exec_pipe (char **argv, int *fd);
|
||||
#endif
|
||||
char **
|
||||
grub_util_find_root_devices_from_poolname (char *poolname);
|
||||
|
||||
grub_disk_addr_t
|
||||
grub_util_find_partition_start (const char *dev);
|
||||
|
||||
/* OS-specific functions provided by getroot_*.c. */
|
||||
enum grub_dev_abstraction_types
|
||||
grub_util_get_dev_abstraction_os (const char *os_dev);
|
||||
char *
|
||||
grub_util_part_to_disk (const char *os_dev, struct stat *st,
|
||||
int *is_part);
|
||||
int
|
||||
grub_util_pull_device_os (const char *osname,
|
||||
enum grub_dev_abstraction_types ab);
|
||||
char *
|
||||
grub_util_get_grub_dev_os (const char *os_dev);
|
||||
grub_disk_addr_t
|
||||
grub_util_find_partition_start_os (const char *dev);
|
||||
|
||||
#endif /* ! GRUB_UTIL_GETROOT_HEADER */
|
||||
|
|
|
@ -33,7 +33,6 @@ int grub_util_biosdisk_is_floppy (grub_disk_t disk);
|
|||
const char *
|
||||
grub_util_biosdisk_get_compatibility_hint (grub_disk_t disk);
|
||||
grub_err_t grub_util_biosdisk_flush (struct grub_disk *disk);
|
||||
void grub_util_pull_device (const char *osname);
|
||||
grub_err_t
|
||||
grub_util_fd_seek (int fd, const char *name, grub_uint64_t sector);
|
||||
ssize_t grub_util_fd_read (int fd, char *buf, size_t len);
|
||||
|
@ -52,8 +51,6 @@ grub_util_ldm_embed (struct grub_disk *disk, unsigned int *nsectors,
|
|||
grub_embed_type_t embed_type,
|
||||
grub_disk_addr_t **sectors);
|
||||
#endif
|
||||
grub_disk_addr_t
|
||||
grub_hostdisk_find_partition_start (const char *dev);
|
||||
const char *
|
||||
grub_hostdisk_os_dev_to_grub_drive (const char *os_dev, int add);
|
||||
|
||||
|
@ -63,11 +60,45 @@ grub_util_get_fd_size (int fd, const char *name, unsigned *log_secsize);
|
|||
char *
|
||||
grub_util_get_os_disk (const char *os_dev);
|
||||
|
||||
#ifdef HAVE_DEVICE_MAPPER
|
||||
#ifdef __linux__
|
||||
int
|
||||
grub_hostdisk_linux_find_partition (char *dev, grub_disk_addr_t sector);
|
||||
#endif
|
||||
|
||||
int
|
||||
grub_util_get_dm_node_linear_info (const char *dev,
|
||||
int *maj, int *min,
|
||||
grub_disk_addr_t *st);
|
||||
|
||||
|
||||
/* Supplied by hostdisk_*.c. */
|
||||
grub_int64_t
|
||||
grub_util_get_fd_size_os (int fd, const char *name, unsigned *log_secsize);
|
||||
/* REturns partition offset in 512B blocks. */
|
||||
grub_disk_addr_t
|
||||
grub_hostdisk_find_partition_start_os (const char *dev);
|
||||
/* Adjust device driver parameters. This function should be called just
|
||||
after successfully opening the device. For now, it simply prevents the
|
||||
floppy driver from retrying operations on failure, as otherwise the
|
||||
driver takes a while to abort when there is no floppy in the drive.
|
||||
For now it's non-nop only on NetBSD.
|
||||
*/
|
||||
void
|
||||
grub_hostdisk_configure_device_driver (int fd);
|
||||
void
|
||||
grub_hostdisk_flush_initial_buffer (const char *os_dev);
|
||||
|
||||
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__APPLE__) || defined(__NetBSD__) || defined (__sun__) || defined(__OpenBSD__)
|
||||
#define GRUB_DISK_DEVS_ARE_CHAR 1
|
||||
#else
|
||||
#define GRUB_DISK_DEVS_ARE_CHAR 0
|
||||
#endif
|
||||
|
||||
#ifdef __GNU__
|
||||
int
|
||||
grub_util_hurd_get_disk_info (const char *dev, grub_uint32_t *secsize,
|
||||
grub_disk_addr_t *offset,
|
||||
grub_disk_addr_t *size, char **parent);
|
||||
#endif
|
||||
|
||||
#endif /* ! GRUB_BIOSDISK_MACHINE_UTIL_HEADER */
|
||||
|
|
|
@ -20,14 +20,10 @@
|
|||
#ifndef GRUB_LVM_UTIL_HEADER
|
||||
#define GRUB_LVM_UTIL_HEADER 1
|
||||
|
||||
#if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
||||
|
||||
#ifdef __linux__
|
||||
#define LVM_DEV_MAPPER_STRING "/dev/mapper/"
|
||||
#else
|
||||
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
||||
#define LVM_DEV_MAPPER_STRING "/dev/linux_lvm/"
|
||||
#endif
|
||||
|
||||
#else
|
||||
#define LVM_DEV_MAPPER_STRING "/dev/mapper/"
|
||||
#endif
|
||||
|
||||
#endif /* ! GRUB_RAID_UTIL_HEADER */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue