promlog.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* $Id$
  2.  *
  3.  * This file is subject to the terms and conditions of the GNU General Public
  4.  * License.  See the file "COPYING" in the main directory of this archive
  5.  * for more details.
  6.  *
  7.  * Copyright (C) 1992 - 1997, 2000 Silicon Graphics, Inc.
  8.  * Copyright (C) 2000 by Colin Ngam
  9.  */
  10. #ifndef _ASM_SN_SN1_PROMLOG_H
  11. #define _ASM_SN_SN1_PROMLOG_H
  12. #include <asm/sn/fprom.h>
  13. #define PROMLOG_MAGIC 0x504c4f49
  14. #define PROMLOG_VERSION 1
  15. #define PROMLOG_OFFSET_MAGIC 0x10
  16. #define PROMLOG_OFFSET_VERSION 0x14
  17. #define PROMLOG_OFFSET_SEQUENCE 0x18
  18. #define PROMLOG_OFFSET_ENTRY0 0x100
  19. #define PROMLOG_ERROR_NONE 0
  20. #define PROMLOG_ERROR_PROM        -1
  21. #define PROMLOG_ERROR_MAGIC        -2
  22. #define PROMLOG_ERROR_CORRUPT        -3
  23. #define PROMLOG_ERROR_BOL        -4
  24. #define PROMLOG_ERROR_EOL        -5
  25. #define PROMLOG_ERROR_POS        -6
  26. #define PROMLOG_ERROR_REPLACE        -7
  27. #define PROMLOG_ERROR_COMPACT        -8
  28. #define PROMLOG_ERROR_FULL        -9
  29. #define PROMLOG_ERROR_ARG        -10
  30. #define PROMLOG_ERROR_UNUSED        -11   
  31. #define PROMLOG_TYPE_UNUSED 0xf
  32. #define PROMLOG_TYPE_LOG 3
  33. #define PROMLOG_TYPE_LIST 2
  34. #define PROMLOG_TYPE_VAR 1
  35. #define PROMLOG_TYPE_DELETED 0
  36. #define PROMLOG_TYPE_ANY 98
  37. #define PROMLOG_TYPE_INVALID 99
  38. #define PROMLOG_KEY_MAX 14
  39. #define PROMLOG_VALUE_MAX 47
  40. #define PROMLOG_CPU_MAX 4
  41. typedef struct promlog_header_s {
  42.     unsigned int unused[4];
  43.     unsigned int magic;
  44.     unsigned int version;
  45.     unsigned int sequence;
  46. } promlog_header_t;
  47. typedef unsigned int promlog_pos_t;
  48. typedef struct promlog_ent_s { /* PROM individual entry */
  49.     uint type : 4;
  50.     uint cpu_num : 4;
  51.     char key[PROMLOG_KEY_MAX + 1];
  52.     char value[PROMLOG_VALUE_MAX + 1];
  53. } promlog_ent_t;
  54. typedef struct promlog_s { /* Activation handle */
  55.     fprom_t f;
  56.     int sector_base;
  57.     int cpu_num;
  58.     int active; /* Active sector, 0 or 1 */
  59.     promlog_pos_t log_start;
  60.     promlog_pos_t log_end;
  61.     promlog_pos_t alt_start;
  62.     promlog_pos_t alt_end;
  63.     promlog_pos_t pos;
  64.     promlog_ent_t ent;
  65. } promlog_t;
  66. #endif /* _ASM_SN_SN1_PROMLOG_H */