From: <rob...@us...> - 2005-01-09 12:26:54
|
Update of /cvsroot/gc-linux/ipl/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23177 Added Files: block.h dolup.h fat.h file.h lowmem.h sd.h sram.h Log Message: Forgot to add some moved include files to the repository --- NEW FILE: block.h --- #ifndef __BLOCK_H #define __BLOCK_H typedef struct { int dev; int (*block_read)(int dev, int start, int size, void *buffer); } block_dev_desc_t; #endif --- NEW FILE: dolup.h --- /* * Copyright (c) 2001-2003 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels <ad...@si...> * */ #ifndef __DOLUP_H__ #define __DOLUP_H__ void dolup_init(void); #endif /* __HTTPD_H__ */ --- NEW FILE: fat.h --- /* * R/O (V)FAT 12/16/32 filesystem implementation by Marcus Sundberg * * 2002-07-28 - rj...@ne... - ported to ppcboot v1.1.6 * 2003-03-10 - kh...@ne... - ported to u-boot * * See file CREDITS for list of people who contributed to this * project. * * 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 _FAT_H_ #define _FAT_H_ #include <linux/types.h> #include "block.h" #define CONFIG_SUPPORT_VFAT #define SECTOR_SIZE FS_BLOCK_SIZE #define FS_BLOCK_SIZE 512 #if FS_BLOCK_SIZE != SECTOR_SIZE #error FS_BLOCK_SIZE != SECTOR_SIZE - This code needs to be fixed! #endif #define MAX_CLUSTSIZE 65536 #define DIRENTSPERBLOCK (FS_BLOCK_SIZE/sizeof(dir_entry)) #define DIRENTSPERCLUST ((mydata->clust_size*SECTOR_SIZE)/sizeof(dir_entry)) #define FATBUFBLOCKS 6 #define FATBUFSIZE (FS_BLOCK_SIZE*FATBUFBLOCKS) #define FAT12BUFSIZE ((FATBUFSIZE*2)/3) #define FAT16BUFSIZE (FATBUFSIZE/2) #define FAT32BUFSIZE (FATBUFSIZE/4) /* Filesystem identifiers */ #define FAT12_SIGN "FAT12 " #define FAT16_SIGN "FAT16 " #define FAT32_SIGN "FAT32 " #define SIGNLEN 8 /* File attributes */ #define ATTR_RO 1 #define ATTR_HIDDEN 2 #define ATTR_SYS 4 #define ATTR_VOLUME 8 #define ATTR_DIR 16 #define ATTR_ARCH 32 #define ATTR_VFAT (ATTR_RO | ATTR_HIDDEN | ATTR_SYS | ATTR_VOLUME) #define DELETED_FLAG ((char)0xe5) /* Marks deleted files when in name[0] */ #define aRING 0x05 /* Used to represent 'å' in name[0] */ /* Indicates that the entry is the last long entry in a set of long * dir entries */ #define LAST_LONG_ENTRY_MASK 0x40 /* Flags telling whether we should read a file or list a directory */ #define LS_NO 0 #define LS_YES 1 #define LS_DIR 1 #define LS_ROOT 2 #ifdef DEBUG #define FAT_DPRINT(args...) printf(args) #else #define FAT_DPRINT(args...) #endif #define FAT_ERROR(arg) printf(arg) #define ISDIRDELIM(c) ((c) == '/' || (c) == '\\') #define FSTYPE_NONE (-1) #if defined(__linux__) && defined(__KERNEL__) #define FAT2CPU16 le16_to_cpu #define FAT2CPU32 le32_to_cpu #else #if __LITTLE_ENDIAN #define FAT2CPU16(x) (x) #define FAT2CPU32(x) (x) #else #define FAT2CPU16(x) ((((x) & 0x00ff) << 8) | (((x) & 0xff00) >> 8)) #define FAT2CPU32(x) ((((x) & 0x000000ff) << 24) | \ (((x) & 0x0000ff00) << 8) | \ (((x) & 0x00ff0000) >> 8) | \ (((x) & 0xff000000) >> 24)) #endif #endif #define TOLOWER(c) if((c) >= 'A' && (c) <= 'Z'){(c)+=('a' - 'A');} #define START(dent) (FAT2CPU16((dent)->start) \ + (mydata->fatsize != 32 ? 0 : \ (FAT2CPU16((dent)->starthi) << 16))) typedef struct boot_sector { __u8 ignored[3]; /* Bootstrap code */ char system_id[8]; /* Name of fs */ __u8 sector_size[2]; /* Bytes/sector */ __u8 cluster_size; /* Sectors/cluster */ __u16 reserved; /* Number of reserved sectors */ __u8 fats; /* Number of FATs */ __u8 dir_entries[2]; /* Number of root directory entries */ __u8 sectors[2]; /* Number of sectors */ __u8 media; /* Media code */ __u16 fat_length; /* Sectors/FAT */ __u16 secs_track; /* Sectors/track */ __u16 heads; /* Number of heads */ __u32 hidden; /* Number of hidden sectors */ __u32 total_sect; /* Number of sectors (if sectors == 0) */ /* FAT32 only */ __u32 fat32_length; /* Sectors/FAT */ __u16 flags; /* Bit 8: fat mirroring, low 4: active fat */ __u8 version[2]; /* Filesystem version */ __u32 root_cluster; /* First cluster in root directory */ __u16 info_sector; /* Filesystem info sector */ __u16 backup_boot; /* Backup boot sector */ __u16 reserved2[6]; /* Unused */ } boot_sector; typedef struct volume_info { __u8 drive_number; /* BIOS drive number */ __u8 reserved; /* Unused */ __u8 ext_boot_sign; /* 0x29 if fields below exist (DOS 3.3+) */ __u8 volume_id[4]; /* Volume ID number */ char volume_label[11]; /* Volume label */ char fs_type[8]; /* Typically FAT12, FAT16, or FAT32 */ /* Boot code comes next, all but 2 bytes to fill up sector */ /* Boot sign comes last, 2 bytes */ } volume_info; typedef struct dir_entry { char name[8],ext[3]; /* Name and extension */ __u8 attr; /* Attribute bits */ __u8 lcase; /* Case for base and extension */ __u8 ctime_ms; /* Creation time, milliseconds */ __u16 ctime; /* Creation time */ __u16 cdate; /* Creation date */ __u16 adate; /* Last access date */ __u16 starthi; /* High 16 bits of cluster in FAT32 */ __u16 time,date,start;/* Time, date and first cluster */ __u32 size; /* File size in bytes */ } dir_entry; typedef struct dir_slot { __u8 id; /* Sequence number for slot */ __u8 name0_4[10]; /* First 5 characters in name */ __u8 attr; /* Attribute byte */ __u8 reserved; /* Unused */ __u8 alias_checksum;/* Checksum for 8.3 alias */ __u8 name5_10[12]; /* 6 more characters in name */ __u16 start; /* Unused */ __u8 name11_12[4]; /* Last 2 characters in name */ } dir_slot; /* Private filesystem parameters */ typedef struct { int fatsize; /* Size of FAT in bits */ __u16 fatlength; /* Length of FAT in sectors */ __u16 fat_sect; /* Starting sector of the FAT */ __u16 rootdir_sect; /* Start sector of root directory */ __u16 clust_size; /* Size of clusters in sectors */ short data_begin; /* The sector of the first cluster, can be negative */ __u8 fatbuf[FATBUFSIZE]; /* Current FAT buffer */ int fatbufnum; /* Used by get_fatent, init to -1 */ } fsdata; typedef int (file_detectfs_func)(void); typedef int (file_ls_func)(const char *dir); typedef long (file_read_func)(const char *filename, void *buffer, unsigned long maxsize); struct filesystem { file_detectfs_func *detect; file_ls_func *ls; file_read_func *read; const char name[12]; }; /* FAT tables */ file_detectfs_func file_fat_detectfs; file_ls_func file_fat_ls; file_read_func file_fat_read; /* Currently this doesn't check if the dir exists or is valid... */ int file_cd(const char *path); int file_fat_detectfs(void); int file_fat_ls(const char *dir); long file_fat_read(const char *filename, void *buffer, unsigned long maxsize); const char *file_getfsname(int idx); int fat_register_device(block_dev_desc_t *dev_desc, int pbr_offset); #endif /* _FAT_H_ */ --- NEW FILE: file.h --- #ifndef __file_h #define __file_h long file_read(const char *filename, void *buffer, unsigned long maxsize); #endif --- NEW FILE: lowmem.h --- #ifndef __lowmem_h #define __lowmem_h #define lowmem_current_video_mode *((unsigned long*)0x800000CC) #endif --- NEW FILE: sd.h --- #ifndef _SD_H_ #define _SD_H_ void sd_boot(void); #endif --- NEW FILE: sram.h --- #ifndef __sram_h #define __sram_h void sram_set_videomode(int v); int sram_get_videomode(void); void sram_set_autoboot(int v); int sram_get_autoboot(void); struct ip_addr *sram_get_ip(int w); void sram_load_defaults(void); void read_sram(void); void write_sram(void); #endif |