upg.c 971 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <errno.h>
  2. #include <stdio.h>
  3. #include <sys/ipc.h>
  4. #include <sys/msg.h>
  5. #include "elog.h"
  6. #include "upg.h"
  7. #if 1
  8. #define LOGD log_d
  9. #define LOGE log_e
  10. #else
  11. #define LOGD printf
  12. #define LOGE printf
  13. #endif
  14. static key_t ukey=0;
  15. static int upg_send(int evt)
  16. {
  17. int r,msgid;
  18. msgbuf_t mb;
  19. msgid = msgget(ukey, 0666| IPC_CREAT);
  20. //LOGD("+++++++++++ key: %d, msgid: %d\n", ukey, msgid);
  21. mb.evt = evt;
  22. r = msgsnd(msgid, &mb, sizeof(mb.evt), IPC_NOWAIT);
  23. if(r<0) {
  24. LOGE("msgsnd failed, %d, errno: %d\n", r, errno);
  25. }
  26. else {
  27. LOGD("msgsnd evt 0x%02x ok\n", evt);
  28. }
  29. return r;
  30. }
  31. int upg_init(void)
  32. {
  33. int r,msgid;
  34. ukey = ftok(UPG_KEY_PATH, UPG_KEY_SN);
  35. if(ukey<0) {
  36. LOGE("ftok %s failed, errno: %d\n", UPG_KEY_PATH, errno);
  37. return -1;
  38. }
  39. return upg_send(UPGRADE_EVT_APP_RUNNING);
  40. }
  41. int upg_start(void)
  42. {
  43. return upg_send(UPGRADE_EVT_UPLOAD_FINISH);
  44. }