X-Git-Url: http://git.ozlabs.org/?p=yaboot.git;a=blobdiff_plain;f=include%2Ffs.h;h=1ff7986af5c9343d8dadb7de55005c2704d06511;hp=3ec59281bfbbb76ed65c7d2a21ad38eae441a7ed;hb=19d463913aa7e20a567d5e7fb68b7fd69955b5fc;hpb=f4ebbd9f7ea23e3f0fcbe098754580c220894628 diff --git a/include/fs.h b/include/fs.h index 3ec5928..1ff7986 100644 --- a/include/fs.h +++ b/include/fs.h @@ -1,22 +1,24 @@ /* - FileSystems common definitions - - Copyright (C) 1999 Benjamin Herrenschmidt - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ + * fs.h - Filesystem common definitions + * + * Copyright (C) 2001 Ethan Benson + * + * Copyright (C) 1999 Benjamin Herrenschmidt + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ #ifndef FS_H #define FS_H @@ -24,47 +26,30 @@ #include "partition.h" #include "file.h" +int fserrorno; +struct boot_fspec_t; + struct fs_t { const char* name; int (*open)( struct boot_file_t* file, - const char* dev_name, struct partition_t* part, - const char* file_name); - + struct boot_fspec_t* fspec); + int (*read)( struct boot_file_t* file, unsigned int size, void* buffer); - + int (*seek)( struct boot_file_t* file, unsigned int newpos); - + int (*close)( struct boot_file_t* file); }; extern const struct fs_t *fs_of; extern const struct fs_t *fs_of_netboot; -const struct fs_t *fs_open( struct boot_file_t *file, const char *dev_name, - struct partition_t *part, const char *file_name ); - -#if DEBUG -# define DEBUG_ENTER prom_printf( "--> %s\n", __PRETTY_FUNCTION__ ); -# define DEBUG_LEAVE(str) \ - prom_printf( "<-- %s - %s\n", __PRETTY_FUNCTION__, #str ); -# define DEBUG_F(fmt, args...)\ -{\ - prom_printf( " %s - ", __PRETTY_FUNCTION__ );\ - prom_printf( fmt, ## args );\ -} -# define DEBUG_OPEN DEBUG_F( "dev=%s, part=0x%08lx (%d), file_name=%s\n",\ - dev_name, part, part ? part->part_number : -1,\ - file_name); -#else -#define DEBUG_ENTER -#define DEBUG_LEAVE(x) -#define DEBUG_F(fmt, args...) -#define DEBUG_OPEN -#endif +const struct fs_t *fs_open(struct boot_file_t *file, + struct partition_t *part, struct boot_fspec_t *fspec); #endif