kb_machblue_core_system.c
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:3k
源码类别:

DVD

开发平台:

C/C++

  1. //*****************************************************************************
  2. //File Name: kb_machblue_core_system.c
  3. //
  4. //Description: system function
  5. //
  6. // used by Machblue to initialize or delete the core porting layer
  7. // used by Machblue to access the platform's kernel panic api
  8. // used by Machblue to access the platform's system time api
  9. //
  10. //Author: steven
  11. //
  12. //Date:  2006.12.29
  13. //
  14. //Version:  v1.0
  15. //*****************************************************************************
  16. #include "task.h"
  17. #include "time.h"
  18. #include "timeclk.h"
  19. #include "machblue_defines.h"
  20. #include "machblue_porting_core.h"
  21. extern mb_error_t mb_timer_init(void);
  22. extern mb_error_t mb_timer_delete(void);
  23. /**
  24.  * Invoked by Machblue to initialize the porting layer. This
  25.  * will be called before any calls to the porting layer.
  26.  * @return MB_SUCCESS on success, MB_FAILURE on failure.
  27.  */
  28. mb_error_t mb_porting_layer_init(void *init_client_data)
  29. {
  30. if(mb_timer_init()!=MB_SUCCESS)
  31. {
  32. mb_printf("n[Machblue]:mb_porting_layer_init timer error.");
  33. return MB_FAILURE;
  34. }
  35. return MB_SUCCESS;
  36. }
  37. /**
  38.  * Invoked by Machblue to delete the porting layer. Machblue will 
  39.  * not make any calls to the porting layer after this call
  40.  * @return MB_SUCCESS on success, MB_FAILURE on failure.
  41.  */
  42. mb_error_t mb_porting_layer_delete( void )
  43. {
  44. if(mb_timer_delete()!=MB_SUCCESS)
  45. {
  46. mb_printf("n[Machblue]:mb_porting_layer_delete timer error.");
  47. return MB_FAILURE;
  48. }
  49. return MB_SUCCESS;
  50. }
  51. /**
  52.  * Invokes by Machblue when an unrecoverable error has been encountered.
  53.  * @return none.
  54.  */
  55. void mb_panic(const mb_char_t *str)
  56. {
  57. mb_printf(str);
  58. task_exit(0);
  59. }
  60. /*
  61.  * ======================= System Time API ===========================================
  62.  */
  63. /**
  64.  * Gets the current system time (UTC).
  65.  * @return MB_SUCCESS on success, MB_FAILURE on failure.
  66.  */
  67. mb_error_t mb_system_time_get(mb_system_time_t *system_time)
  68. {
  69. system_time->sec=KB_TimeGetCurGMTTime();
  70. system_time->nanosec=0;
  71. return MB_SUCCESS;
  72. }
  73. /**
  74.  * Gets the system time zone.
  75.  * @return MB_SUCCESS on success, MB_FAILURE on failure.
  76.  */
  77. mb_error_t mb_timezone_get(mb_timezone_t *timezone)
  78. {
  79. unsigned char ret;
  80. signed char zone,swfZone;
  81. ret=KB_DBGetZone(&zone);
  82. if(ret!=KB_DB_DTV_SUCCESS)
  83. {
  84. mb_printf("n[Machblue]:System get zone error.");
  85. return MB_FAILURE;
  86. }
  87.  #if MB_PLAYER_1_2
  88.   swfZone=zone;
  89.  #else
  90. swfZone=-zone;
  91.  #endif
  92. timezone->daylight=1;
  93. timezone->offset=(long)((long)swfZone*3600);
  94. return MB_SUCCESS;
  95. }
  96. #if MB_PLAYER_1_2
  97. mb_error_t mb_monotonic_time_get(mb_monotonic_time_t *monotonic_time)
  98. {
  99. return MB_SUCCESS;
  100. }
  101. #endif