uboot/include/jffs2/load_kernel.h
<<
>>
Prefs
   1#ifndef load_kernel_h
   2#define load_kernel_h
   3/*-------------------------------------------------------------------------
   4 * Filename:      load_kernel.h
   5 * Version:       $Id: load_kernel.h,v 1.3 2002/01/25 01:34:11 nyet Exp $
   6 * Copyright:     Copyright (C) 2001, Russ Dill
   7 * Author:        Russ Dill <Russ.Dill@asu.edu>
   8 * Description:   header for load kernel modules
   9 *-----------------------------------------------------------------------*/
  10/*
  11 *
  12 * This program is free software; you can redistribute it and/or modify
  13 * it under the terms of the GNU General Public License as published by
  14 * the Free Software Foundation; either version 2 of the License, or
  15 * (at your option) any later version.
  16 *
  17 * This program is distributed in the hope that it will be useful,
  18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20 * GNU General Public License for more details.
  21 *
  22 * You should have received a copy of the GNU General Public License
  23 * along with this program; if not, write to the Free Software
  24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  25 *
  26 */
  27
  28#include <linux/list.h>
  29
  30/* mtd device types */
  31#define MTD_DEV_TYPE_NOR        0x0001
  32#define MTD_DEV_TYPE_NAND       0x0002
  33#define MTD_DEV_TYPE_ONENAND    0x0004
  34
  35#define MTD_DEV_TYPE(type) ((type == MTD_DEV_TYPE_NAND) ? "nand" :      \
  36                        (type == MTD_DEV_TYPE_ONENAND) ? "onenand" : "nor")
  37
  38struct mtd_device {
  39        struct list_head link;
  40        struct mtdids *id;              /* parent mtd id entry */
  41        u16 num_parts;                  /* number of partitions on this device */
  42        struct list_head parts;         /* partitions */
  43};
  44
  45struct part_info {
  46        struct list_head link;
  47        char *name;                     /* partition name */
  48        u8 auto_name;                   /* set to 1 for generated name */
  49        u32 size;                       /* total size of the partition */
  50        u32 offset;                     /* offset within device */
  51        void *jffs2_priv;               /* used internaly by jffs2 */
  52        u32 mask_flags;                 /* kernel MTD mask flags */
  53        u32 sector_size;                /* size of sector */
  54        struct mtd_device *dev;         /* parent device */
  55};
  56
  57struct mtdids {
  58        struct list_head link;
  59        u8 type;                        /* device type */
  60        u8 num;                         /* device number */
  61        u32 size;                       /* device size */
  62        char *mtd_id;                   /* linux kernel device id */
  63};
  64
  65#define ldr_strlen      strlen
  66#define ldr_strncmp     strncmp
  67#define ldr_memcpy      memcpy
  68#define putstr(x)       printf("%s", x)
  69#define mmalloc         malloc
  70#define UDEBUG          printf
  71
  72#define putnstr(str, size)      printf("%*.*s", size, size, str)
  73#define ldr_output_string(x)    puts(x)
  74#define putLabeledWord(x, y)    printf("%s %08x\n", x, (unsigned int)y)
  75#define led_blink(x, y, z, a)
  76
  77/* common/cmd_jffs2.c */
  78extern int mtdparts_init(void);
  79extern int find_dev_and_part(const char *id, struct mtd_device **dev,
  80                                u8 *part_num, struct part_info **part);
  81extern struct mtd_device *device_find(u8 type, u8 num);
  82
  83#endif /* load_kernel_h */
  84