iothread.h 4.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /* Copyright Statement:
  2. *
  3. * This software/firmware and related documentation ("MediaTek Software") are
  4. * protected under relevant copyright laws. The information contained herein
  5. * is confidential and proprietary to MediaTek Inc. and/or its licensors.
  6. * Without the prior written permission of MediaTek inc. and/or its licensors,
  7. * any reproduction, modification, use or disclosure of MediaTek Software,
  8. * and information contained herein, in whole or in part, shall be strictly prohibited.
  9. */
  10. /* MediaTek Inc. (C) 2017. All rights reserved.
  11. *
  12. * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  13. * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  14. * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
  15. * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  16. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  17. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  18. * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  19. * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  20. * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
  21. * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
  22. * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
  23. * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
  24. * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
  25. * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
  26. * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  27. * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  28. * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
  29. * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  30. */
  31. #include <kernel/event.h> // for event_t
  32. #include <platform/boot_mode.h> // for BOOTMODE
  33. /******************************************************************************
  34. ******************************************************************************/
  35. #define IO_THREAD_PRIORITY (DEFAULT_PRIORITY + 1)
  36. /******************************************************************************
  37. ******************************************************************************/
  38. extern event_t iothread_start_event;
  39. extern event_t iothread_end_event;
  40. /******************************************************************************
  41. ******************************************************************************/
  42. #define wake_up_iothread() \
  43. do { \
  44. dprintf(INFO, "Wake up iothread.\n"); \
  45. event_signal(&iothread_start_event, false); \
  46. } while (0)
  47. /******************************************************************************
  48. ******************************************************************************/
  49. #define wait_for_iothread() \
  50. do { \
  51. dprintf(INFO, "Wait for iothread...\n"); \
  52. event_wait(&iothread_end_event); \
  53. event_unsignal(&iothread_end_event); \
  54. dprintf(INFO, "Met iothread.\n"); \
  55. } while (0)
  56. /******************************************************************************
  57. ******************************************************************************/
  58. #define wake_up_bootstrap2() \
  59. do { \
  60. dprintf(INFO, "Wake up bootstrap2.\n"); \
  61. event_signal(&iothread_end_event, true); \
  62. } while (0)
  63. /******************************************************************************
  64. ******************************************************************************/
  65. #define wait_for_bootstrap2() \
  66. do { \
  67. dprintf(INFO, "Wait for bootstrap2...\n"); \
  68. event_wait(&iothread_start_event); \
  69. event_unsignal(&iothread_start_event); \
  70. dprintf(INFO, "Met bootstrap2.\n"); \
  71. } while (0)
  72. /******************************************************************************
  73. ******************************************************************************/
  74. void load_images(BOOTMODE mode);
  75. int iothread(void *arg);