ptable.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. * Copyright (c) 2008, Google Inc.
  3. * All rights reserved.
  4. *
  5. * Copyright (c) 2009-2010, Code Aurora Forum. All rights reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions
  9. * are met:
  10. * * Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * * Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in
  14. * the documentation and/or other materials provided with the
  15. * distribution.
  16. *
  17. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  18. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  19. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  20. * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  21. * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  22. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  23. * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  24. * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  25. * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  26. * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  27. * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  28. * SUCH DAMAGE.
  29. */
  30. #ifndef __LIB_PTABLE_H
  31. #define __LIB_PTABLE_H
  32. /* flash partitions are defined in terms of blocks
  33. * (flash erase units)
  34. */
  35. #define MAX_PTENTRY_NAME 16
  36. #define MAX_PTABLE_PARTS 32
  37. #define TYPE_MODEM_PARTITION 1
  38. #define TYPE_APPS_PARTITION 0
  39. #define PERM_NON_WRITEABLE 0
  40. #define PERM_WRITEABLE 1
  41. struct ptentry
  42. {
  43. char name[MAX_PTENTRY_NAME];
  44. unsigned start;
  45. unsigned length;
  46. unsigned flags;
  47. char type;
  48. char perm;
  49. };
  50. struct ptable
  51. {
  52. struct ptentry parts[MAX_PTABLE_PARTS];
  53. int count;
  54. };
  55. /* tools to populate and query the partition table */
  56. void ptable_init(struct ptable *ptable);
  57. void ptable_add(struct ptable *ptable, char *name, unsigned start,
  58. unsigned length, unsigned flags, char type, char perm);
  59. struct ptentry *ptable_find(struct ptable *ptable, const char *name);
  60. struct ptentry *ptable_get(struct ptable *ptable, int n);
  61. int ptable_size(struct ptable *ptable);
  62. void ptable_dump(struct ptable *ptable);
  63. #endif /* __LIB_PTABLE_H */