logbuff.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * (C) Copyright 2002-2007
  3. * Detlev Zundel, dzu@denx.de.
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. */
  7. #ifndef _LOGBUFF_H
  8. #define _LOGBUFF_H
  9. #ifdef CONFIG_LOGBUFFER
  10. #define LOGBUFF_MAGIC 0xc0de4ced /* Forced by code, eh! */
  11. #define LOGBUFF_LEN (16384) /* Must be 16k right now */
  12. #define LOGBUFF_MASK (LOGBUFF_LEN-1)
  13. #define LOGBUFF_OVERHEAD (4096) /* Logbuffer overhead for extra info */
  14. #define LOGBUFF_RESERVE (LOGBUFF_LEN+LOGBUFF_OVERHEAD)
  15. /* The mapping used here has to be the same as in setup_ext_logbuff ()
  16. in linux/kernel/printk */
  17. typedef struct {
  18. union {
  19. struct {
  20. unsigned long tag;
  21. unsigned long start;
  22. unsigned long con;
  23. unsigned long end;
  24. unsigned long chars;
  25. } v2;
  26. struct {
  27. unsigned long dummy;
  28. unsigned long tag;
  29. unsigned long start;
  30. unsigned long size;
  31. unsigned long chars;
  32. } v1;
  33. };
  34. unsigned char buf[0];
  35. } logbuff_t;
  36. int drv_logbuff_init (void);
  37. void logbuff_init_ptrs (void);
  38. void logbuff_log(char *msg);
  39. void logbuff_reset (void);
  40. unsigned long logbuffer_base (void);
  41. #endif /* CONFIG_LOGBUFFER */
  42. #endif /* _LOGBUFF_H */