tz_service.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef TZ_SERVICE_H
  2. #define TZ_SERVICE_H
  3. enum {
  4. TEEI_SERVICE_SOCKET,
  5. TEEI_SERVICE_TIME,
  6. TEEI_SERVICE_VFS,
  7. TEEI_DRIVERS,
  8. TEEI_SERVICE_MAX
  9. };
  10. struct service_handler {
  11. unsigned int sysno; /*! ?�务调用??*/
  12. void *param_buf; /*! ?Œç³»ç»Ÿé€šä¿¡ç¼“冲??*/
  13. unsigned size;
  14. void (*init)(struct service_handler *handler); /*! ?�务?�å??–å???*/
  15. void (*deinit)(struct service_handler *handler); /*! ?�务?œæ­¢å¤„ç? */
  16. int (*handle)(struct service_handler *handler); /*! ?�务调用 */
  17. };
  18. /** @brief
  19. *
  20. */
  21. extern char *tsc_drivers_buf;
  22. extern struct semaphore printer_rd_sem;
  23. extern struct semaphore printer_wr_sem;
  24. extern struct semaphore smc_lock;
  25. extern struct semaphore cpu_down_lock;
  26. extern struct semaphore boot_sema;
  27. extern unsigned long boot_vfs_addr;
  28. extern unsigned long boot_soter_flag;
  29. extern int forward_call_flag;
  30. extern unsigned int soter_error_flag;
  31. #ifdef VFS_RDWR_SEM
  32. extern struct semaphore VFS_rd_sem;
  33. extern struct semaphore VFS_wr_sem;
  34. #else
  35. extern struct completion VFS_rd_comp;
  36. extern struct completion VFS_wr_comp;
  37. #endif
  38. int wait_for_service_done(void);
  39. int register_switch_irq_handler(void);
  40. int teei_service_init(void);
  41. int add_nq_entry(unsigned char *command_buff, int command_length, int valid_flag);
  42. void set_sch_nq_cmd(void);
  43. void set_sch_load_img_cmd(void);
  44. long create_cmd_buff(void);
  45. void set_fp_command(unsigned long memory_size);
  46. int send_fp_command(unsigned long share_memory_size);
  47. #endif