load_kernel.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. #include <linux/list.h>
  28. /* mtd device types */
  29. #define MTD_DEV_TYPE_NOR 0x0001
  30. #define MTD_DEV_TYPE_NAND 0x0002
  31. #define MTD_DEV_TYPE_ONENAND 0x0004
  32. #define MTD_DEV_TYPE(type) ((type == MTD_DEV_TYPE_NAND) ? "nand" : \
  33. (type == MTD_DEV_TYPE_ONENAND) ? "onenand" : "nor")
  34. struct mtd_device {
  35. struct list_head link;
  36. struct mtdids *id; /* parent mtd id entry */
  37. u16 num_parts; /* number of partitions on this device */
  38. struct list_head parts; /* partitions */
  39. };
  40. struct part_info {
  41. struct list_head link;
  42. char *name; /* partition name */
  43. u8 auto_name; /* set to 1 for generated name */
  44. u32 size; /* total size of the partition */
  45. u32 offset; /* offset within device */
  46. void *jffs2_priv; /* used internaly by jffs2 */
  47. u32 mask_flags; /* kernel MTD mask flags */
  48. struct mtd_device *dev; /* parent device */
  49. };
  50. struct mtdids {
  51. struct list_head link;
  52. u8 type; /* device type */
  53. u8 num; /* device number */
  54. u32 size; /* device size */
  55. char *mtd_id; /* linux kernel device id */
  56. };
  57. #define ldr_strlen strlen
  58. #define ldr_strncmp strncmp
  59. #define ldr_memcpy memcpy
  60. #define putstr(x) printf("%s", x)
  61. #define mmalloc malloc
  62. #define UDEBUG printf
  63. #define putnstr(str, size) printf("%*.*s", size, size, str)
  64. #define ldr_output_string(x) puts(x)
  65. #define putLabeledWord(x, y) printf("%s %08x\n", x, (unsigned int)y)
  66. #define led_blink(x, y, z, a)
  67. /* common/cmd_jffs2.c */
  68. extern int mtdparts_init(void);
  69. extern int find_dev_and_part(const char *id, struct mtd_device **dev,
  70. u8 *part_num, struct part_info **part);
  71. #endif /* load_kernel_h */