Advertisement
ItsTotallyRSX

Untitled

Dec 3rd, 2018
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. /*
  2. Purpose:
  3. Author: Reece W.
  4. License: All Rights Reserved J. Reece Wilson
  5. */
  6.  
  7. class OProcessThread;
  8.  
  9. struct ODEParameters
  10. {
  11. bool extended;
  12. union
  13. {
  14. struct
  15. {
  16. size_t one;
  17. size_t two;
  18. size_t three;
  19. size_t four;
  20. };
  21. struct
  22. {
  23. size_t one;
  24. size_t two;
  25. size_t three;
  26. size_t four;
  27. size_t five;
  28. size_t six;
  29. size_t seven;
  30. size_t eight;
  31. } ex;
  32. };
  33. };
  34.  
  35. typedef void(* ODECompleteCallback_f)(void * context);
  36.  
  37. class ODEWorkItem : public OObject
  38. {
  39. public:
  40. virtual error_t SetParameters(ODEParameters *) = 0;
  41.  
  42. virtual error_t Schedule() = 0;
  43. virtual error_t Unschedule() = 0;
  44.  
  45. virtual error_t HasDispatched(bool &) = 0;
  46. virtual error_t HasExecuted(bool &) = 0;
  47.  
  48. virtual error_t WaitExecute(uint32_t ms) = 0;
  49. virtual error_t AwaitExecute(ODECompleteCallback_f cb) = 0;
  50. };
  51.  
  52. LIBLINUX_SYM error_t CreateWorkItem(OPtr<OProcessThread> target, const OOutlivableRef<ODEWorkItem> out);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement