Advertisement
Guest User

Untitled

a guest
May 25th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. u32 to_end = min(CMD_BUFF_SIZE - data->cmd_buff.end - 1, cmds_count);
  2. for (u32 i = 0; i < to_end; ++i) {
  3. *((u32*)data->cmd_buff.mem.ptr + data->cmd_buff.end + i) = cmds[i];
  4. }
  5.  
  6. if (to_end != cmds_count) {
  7. *((u32*)data->cmd_buff.mem.ptr + CMD_BUFF_SIZE - 1) = HARDDOOM_CMD_JUMP(data->cmd_buff.mem.dma);
  8.  
  9. for (u32 i = 0; i < cmds_count - to_end; ++i) {
  10. *((u32*)data->cmd_buff.mem.ptr + i) = cmds[to_end + i];
  11. }
  12. }
  13.  
  14. data->cmd_buff.end = (data->cmd_buff.end + cmds_count + (to_end != cmds_count ? 1 : 0)) % CMD_BUFF_SIZE;
  15.  
  16. data->wakeup_counter = data->wakeup_counter + cmds_count + (to_end != cmds_count ? 1 : 0);
  17. if (data->wakeup_counter >= CMD_PACKET_SIZE + 2) {
  18. data->wakeup_counter = 0;
  19.  
  20. if (data->cmd_buff.end != CMD_BUFF_SIZE - 1) {
  21. *((u32*)data->cmd_buff.mem.ptr + data->cmd_buff.end) = HARDDOOM_CMD_PING_ASYNC;
  22. data->cmd_buff.end = data->cmd_buff.end + 1;
  23. }
  24. else {
  25. *((u32*)data->cmd_buff.mem.ptr + data->cmd_buff.end) = HARDDOOM_CMD_JUMP(data->cmd_buff.mem.dma);
  26. *((u32*)data->cmd_buff.mem.ptr) = HARDDOOM_CMD_PING_ASYNC;
  27. data->cmd_buff.end = 1;
  28. }
  29. }
  30. iowrite32(data->cmd_buff.mem.dma + sizeof(u32) * data->cmd_buff.end, REG_ADDR(data, HARDDOOM_CMD_WRITE_PTR));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement