summaryrefslogtreecommitdiff
path: root/core/include/fs.h
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2012-07-27 10:41:30 +0100
committerMatt Fleming <matt.fleming@intel.com>2012-07-30 09:51:36 +0100
commit0d6f330878173c7ba45b884f3e41ce40b917c73c (patch)
tree0a887066d35d8b01914330d6ab6818fe015a5a9d /core/include/fs.h
parent0fcd9a48603497dcc2727570a50a4401bb0fd085 (diff)
parentf0bbf9dd40f37f8c4870a33784996efd56955a75 (diff)
downloadsyslinux-0d6f330878173c7ba45b884f3e41ce40b917c73c.tar.gz
Merge remote-tracking branch 'mfleming/elflink' into for-hpa/elflink/firmware
Conflicts: Makefile com32/elflink/ldlinux/adv.c com32/elflink/ldlinux/kernel.c com32/elflink/ldlinux/ldlinux.c com32/include/bitsize/stddef.h com32/include/bitsize/stdint.h com32/include/stdint.h com32/include/sys/module.h com32/include/sys/x86_64/bitops.h com32/include/syslinux/linux.h com32/lib/Makefile com32/lib/sys/ansicon_write.c com32/lib/sys/module/elfutils.h com32/lib/sys/vesa/efi/fill.h com32/lib/syslinux/load_linux.c com32/lib/syslinux/serial.c com32/lib/syslinux/shuffle.c core/conio.c core/elflink/config.c core/elflink/load_env32.c core/graphics.c core/include/graphics.h core/init.c core/pxelinux.asm mk/elf.mk mk/lib.mk
Diffstat (limited to 'core/include/fs.h')
-rw-r--r--core/include/fs.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/core/include/fs.h b/core/include/fs.h
index a9bf9a6d..673be38e 100644
--- a/core/include/fs.h
+++ b/core/include/fs.h
@@ -72,6 +72,8 @@ struct fs_ops {
int (*readdir)(struct file *, struct dirent *);
int (*next_extent)(struct inode *, uint32_t);
+
+ int (*copy_super)(void *buf);
};
/*
@@ -96,6 +98,7 @@ struct extent {
struct inode {
struct fs_info *fs; /* The filesystem this inode is associated with */
struct inode *parent; /* Parent directory, if any */
+ const char *name; /* Name, valid for generic path search only */
int refcnt;
int mode; /* FILE , DIR or SYMLINK */
uint32_t size;
@@ -179,6 +182,7 @@ static inline struct file *handle_to_file(uint16_t handle)
return handle ? &files[handle-1] : NULL;
}
+#define PATH_DEFAULT "/boot/syslinux/:/boot/"
extern char *PATH;
/* fs.c */
@@ -193,6 +197,7 @@ int open_file(const char *name, struct com32_filedata *filedata);
void pm_open_file(com32sys_t *);
void close_file(uint16_t handle);
void pm_close_file(com32sys_t *);
+int open_config(void);
/* chdir.c */
void pm_realpath(com32sys_t *regs);
@@ -218,8 +223,9 @@ int generic_chdir_start(void);
void generic_mangle_name(char *, const char *);
/* loadconfig.c */
-int search_config(struct com32_filedata *filedata,
- const char *search_directores[], const char *filenames[]);
+int search_dirs(struct com32_filedata *filedata,
+ const char *search_directores[], const char *filenames[],
+ char *realname);
int generic_open_config(struct com32_filedata *filedata);
/* close.c */