list.c.016i.visibility 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. Marking local functions:
  2. Marking externally visible functions: uxListRemove vListInsert vListInsertEnd vListInitialiseItem vListInitialise
  3. Marking externally visible variables:
  4. Reclaiming functions:
  5. Reclaiming variables:
  6. Clearing address taken flags:
  7. Symbol table:
  8. uxListRemove/8 (uxListRemove) @06b86380
  9. Type: function definition analyzed
  10. Visibility: force_output externally_visible no_reorder public
  11. References:
  12. Referring:
  13. Availability: available
  14. Function flags: body
  15. Called by:
  16. Calls:
  17. vListInsert/7 (vListInsert) @06b86d20
  18. Type: function definition analyzed
  19. Visibility: force_output externally_visible no_reorder public
  20. References:
  21. Referring:
  22. Availability: available
  23. Function flags: body
  24. Called by:
  25. Calls:
  26. vListInsertEnd/6 (vListInsertEnd) @06b86a80
  27. Type: function definition analyzed
  28. Visibility: force_output externally_visible no_reorder public
  29. References:
  30. Referring:
  31. Availability: available
  32. Function flags: body
  33. Called by:
  34. Calls:
  35. vListInitialiseItem/5 (vListInitialiseItem) @06b867e0
  36. Type: function definition analyzed
  37. Visibility: force_output externally_visible no_reorder public
  38. References:
  39. Referring:
  40. Availability: available
  41. Function flags: body
  42. Called by:
  43. Calls:
  44. vListInitialise/4 (vListInitialise) @06b86540
  45. Type: function definition analyzed
  46. Visibility: force_output externally_visible no_reorder public
  47. References:
  48. Referring:
  49. Availability: available
  50. Function flags: body
  51. Called by:
  52. Calls:
  53. uxListRemove (struct ListItem_t * const pxItemToRemove)
  54. {
  55. struct List_t * const pxList;
  56. UBaseType_t D.6028;
  57. <bb 2> :
  58. pxList = pxItemToRemove->pvContainer;
  59. _1 = pxItemToRemove->pxNext;
  60. _2 = pxItemToRemove->pxPrevious;
  61. _1->pxPrevious = _2;
  62. _3 = pxItemToRemove->pxPrevious;
  63. _4 = pxItemToRemove->pxNext;
  64. _3->pxNext = _4;
  65. _5 = pxList->pxIndex;
  66. if (pxItemToRemove == _5)
  67. goto <bb 3>; [INV]
  68. else
  69. goto <bb 4>; [INV]
  70. <bb 3> :
  71. _6 = pxItemToRemove->pxPrevious;
  72. pxList->pxIndex = _6;
  73. <bb 4> :
  74. pxItemToRemove->pvContainer = 0B;
  75. _7 = pxList->uxNumberOfItems;
  76. _8 = _7 + 4294967295;
  77. pxList->uxNumberOfItems = _8;
  78. D.6028 = pxList->uxNumberOfItems;
  79. <bb 5> :
  80. <L3>:
  81. return D.6028;
  82. }
  83. vListInsert (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  84. {
  85. const TickType_t xValueOfInsertion;
  86. struct ListItem_t * pxIterator;
  87. <bb 2> :
  88. xValueOfInsertion = pxNewListItem->xItemValue;
  89. if (xValueOfInsertion == 4294967295)
  90. goto <bb 3>; [INV]
  91. else
  92. goto <bb 4>; [INV]
  93. <bb 3> :
  94. pxIterator = pxList->xListEnd.pxPrevious;
  95. goto <bb 7>; [INV]
  96. <bb 4> :
  97. pxIterator = &pxList->xListEnd;
  98. goto <bb 6>; [INV]
  99. <bb 5> :
  100. pxIterator = pxIterator->pxNext;
  101. <bb 6> :
  102. _1 = pxIterator->pxNext;
  103. _2 = _1->xItemValue;
  104. if (xValueOfInsertion >= _2)
  105. goto <bb 5>; [INV]
  106. else
  107. goto <bb 7>; [INV]
  108. <bb 7> :
  109. _3 = pxIterator->pxNext;
  110. pxNewListItem->pxNext = _3;
  111. _4 = pxNewListItem->pxNext;
  112. _4->pxPrevious = pxNewListItem;
  113. pxNewListItem->pxPrevious = pxIterator;
  114. pxIterator->pxNext = pxNewListItem;
  115. pxNewListItem->pvContainer = pxList;
  116. _5 = pxList->uxNumberOfItems;
  117. _6 = _5 + 1;
  118. pxList->uxNumberOfItems = _6;
  119. return;
  120. }
  121. vListInsertEnd (struct List_t * const pxList, struct ListItem_t * const pxNewListItem)
  122. {
  123. struct ListItem_t * const pxIndex;
  124. <bb 2> :
  125. pxIndex = pxList->pxIndex;
  126. pxNewListItem->pxNext = pxIndex;
  127. _1 = pxIndex->pxPrevious;
  128. pxNewListItem->pxPrevious = _1;
  129. _2 = pxIndex->pxPrevious;
  130. _2->pxNext = pxNewListItem;
  131. pxIndex->pxPrevious = pxNewListItem;
  132. pxNewListItem->pvContainer = pxList;
  133. _3 = pxList->uxNumberOfItems;
  134. _4 = _3 + 1;
  135. pxList->uxNumberOfItems = _4;
  136. return;
  137. }
  138. vListInitialiseItem (struct ListItem_t * const pxItem)
  139. {
  140. <bb 2> :
  141. pxItem->pvContainer = 0B;
  142. return;
  143. }
  144. vListInitialise (struct List_t * const pxList)
  145. {
  146. <bb 2> :
  147. _1 = &pxList->xListEnd;
  148. pxList->pxIndex = _1;
  149. pxList->xListEnd.xItemValue = 4294967295;
  150. _2 = &pxList->xListEnd;
  151. pxList->xListEnd.pxNext = _2;
  152. _3 = &pxList->xListEnd;
  153. pxList->xListEnd.pxPrevious = _3;
  154. pxList->uxNumberOfItems = 0;
  155. return;
  156. }