ssdp.lst 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410
  1. GAS LISTING /tmp/ccK7t3Wf.s page 1
  2. 1 .file "ssdp.c"
  3. 2 __SP_H__ = 0x3e
  4. 3 __SP_L__ = 0x3d
  5. 4 __SREG__ = 0x3f
  6. 5 __RAMPZ__ = 0x3b
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .section .rodata.str1.1,"aMS",@progbits,1
  10. 9 .LC0:
  11. 10 0000 4D2D 5345 .string "M-SEARCH"
  12. 10 4152 4348
  13. 10 00
  14. 11 .LC1:
  15. 12 0009 4E4F 5449 .string "NOTIFY"
  16. 12 4659 00
  17. 13 .LC2:
  18. 14 0010 7373 6470 .string "ssdp:alive"
  19. 14 3A61 6C69
  20. 14 7665 00
  21. 15 .section .text.SsdpReceiver,"ax",@progbits
  22. 16 .type SsdpReceiver, @function
  23. 17 SsdpReceiver:
  24. 18 /* prologue: function */
  25. 19 /* frame size = 0 */
  26. 20 /* stack size = 0 */
  27. 21 .L__stack_usage = 0
  28. 22 0000 8CE6 ldi r24,lo8(108)
  29. 23 0002 97E0 ldi r25,lo8(7)
  30. 24 0004 0E94 0000 call HttpuSessionCreate
  31. 25 0008 8C01 movw r16,r24
  32. 26 000a C0E0 ldi r28,0
  33. 27 000c D0E0 ldi r29,0
  34. 28 000e 7C01 movw r14,r24
  35. 29 0010 8AEF ldi r24,-6
  36. 30 0012 E81A sub r14,r24
  37. 31 0014 8BEF ldi r24,-5
  38. 32 0016 F80A sbc r15,r24
  39. 33 .L2:
  40. 34 0018 48EE ldi r20,lo8(-24)
  41. 35 001a 53E0 ldi r21,lo8(3)
  42. 36 001c 60E0 ldi r22,0
  43. 37 001e 70E0 ldi r23,0
  44. 38 0020 C801 movw r24,r16
  45. 39 0022 0E94 0000 call HttpuReceive
  46. 40 0026 1816 cp __zero_reg__,r24
  47. 41 0028 1906 cpc __zero_reg__,r25
  48. 42 002a 04F4 brge .L3
  49. 43 002c 60E0 ldi r22,0
  50. 44 002e 70E0 ldi r23,0
  51. 45 0030 C701 movw r24,r14
  52. 46 0032 0E94 0000 call HttpuGetHeader
  53. 47 0036 6C01 movw r12,r24
  54. 48 0038 48E0 ldi r20,lo8(8)
  55. 49 003a 50E0 ldi r21,0
  56. 50 003c 60E0 ldi r22,lo8(.LC0)
  57. 51 003e 70E0 ldi r23,hi8(.LC0)
  58. 52 0040 0E94 0000 call strncasecmp
  59. GAS LISTING /tmp/ccK7t3Wf.s page 2
  60. 53 0044 892B or r24,r25
  61. 54 0046 01F4 brne .L4
  62. 55 0048 E091 0000 lds r30,search_listener
  63. 56 004c F091 0000 lds r31,search_listener+1
  64. 57 0050 3097 sbiw r30,0
  65. 58 0052 01F0 breq .L2
  66. 59 0054 C801 movw r24,r16
  67. 60 0056 00C0 rjmp .L13
  68. 61 .L4:
  69. 62 0058 46E0 ldi r20,lo8(6)
  70. 63 005a 50E0 ldi r21,0
  71. 64 005c 60E0 ldi r22,lo8(.LC1)
  72. 65 005e 70E0 ldi r23,hi8(.LC1)
  73. 66 0060 C601 movw r24,r12
  74. 67 0062 0E94 0000 call strncasecmp
  75. 68 0066 892B or r24,r25
  76. 69 0068 01F4 brne .L2
  77. 70 006a E091 0000 lds r30,notification_listener
  78. 71 006e F091 0000 lds r31,notification_listener+1
  79. 72 0072 3097 sbiw r30,0
  80. 73 0074 01F0 breq .L2
  81. 74 0076 C701 movw r24,r14
  82. 75 .L13:
  83. 76 0078 1995 eicall
  84. 77 007a 00C0 rjmp .L2
  85. 78 .L3:
  86. 79 007c CE01 movw r24,r28
  87. 80 007e 0197 sbiw r24,1
  88. 81 0080 1C16 cp __zero_reg__,r28
  89. 82 0082 1D06 cpc __zero_reg__,r29
  90. 83 0084 04F4 brge .L15
  91. 84 .L6:
  92. 85 0086 EC01 movw r28,r24
  93. 86 0088 00C0 rjmp .L2
  94. 87 .L15:
  95. 88 008a 60E0 ldi r22,lo8(.LC2)
  96. 89 008c 70E0 ldi r23,hi8(.LC2)
  97. 90 008e C801 movw r24,r16
  98. 91 0090 0E94 0000 call SsdpSendNotifications
  99. 92 0094 00C0 rjmp .L6
  100. 93 .size SsdpReceiver, .-SsdpReceiver
  101. 94 .section .rodata.str1.1
  102. 95 .LC3:
  103. 96 001b 7373 6470 .string "ssdpd"
  104. 96 6400
  105. 97 .section .text.SsdpRegisterListener,"ax",@progbits
  106. 98 .global SsdpRegisterListener
  107. 99 .type SsdpRegisterListener, @function
  108. 100 SsdpRegisterListener:
  109. 101 /* prologue: function */
  110. 102 /* frame size = 0 */
  111. 103 /* stack size = 0 */
  112. 104 .L__stack_usage = 0
  113. 105 0000 9093 0000 sts notification_listener+1,r25
  114. 106 0004 8093 0000 sts notification_listener,r24
  115. 107 0008 8091 0000 lds r24,rx_thread
  116. 108 000c 9091 0000 lds r25,rx_thread+1
  117. GAS LISTING /tmp/ccK7t3Wf.s page 3
  118. 109 0010 892B or r24,r25
  119. 110 0012 01F4 brne .L17
  120. 111 0014 20E8 ldi r18,lo8(-128)
  121. 112 0016 31E0 ldi r19,lo8(1)
  122. 113 0018 40E0 ldi r20,0
  123. 114 001a 50E0 ldi r21,0
  124. 115 001c 60E0 ldi r22,lo8(gs(SsdpReceiver))
  125. 116 001e 70E0 ldi r23,hi8(gs(SsdpReceiver))
  126. 117 0020 80E0 ldi r24,lo8(.LC3)
  127. 118 0022 90E0 ldi r25,hi8(.LC3)
  128. 119 0024 0E94 0000 call NutThreadCreate
  129. 120 0028 9093 0000 sts rx_thread+1,r25
  130. 121 002c 8093 0000 sts rx_thread,r24
  131. 122 .L17:
  132. 123 0030 81E0 ldi r24,lo8(1)
  133. 124 0032 90E0 ldi r25,0
  134. 125 0034 2091 0000 lds r18,rx_thread
  135. 126 0038 3091 0000 lds r19,rx_thread+1
  136. 127 003c 232B or r18,r19
  137. 128 003e 01F0 breq .L18
  138. 129 0040 80E0 ldi r24,0
  139. 130 0042 90E0 ldi r25,0
  140. 131 .L18:
  141. 132 0044 9195 neg r25
  142. 133 0046 8195 neg r24
  143. 134 0048 9109 sbc r25,__zero_reg__
  144. 135 004a 0895 ret
  145. 136 .size SsdpRegisterListener, .-SsdpRegisterListener
  146. 137 .section .text.SsdpRegisterResponder,"ax",@progbits
  147. 138 .global SsdpRegisterResponder
  148. 139 .type SsdpRegisterResponder, @function
  149. 140 SsdpRegisterResponder:
  150. 141 /* prologue: function */
  151. 142 /* frame size = 0 */
  152. 143 /* stack size = 0 */
  153. 144 .L__stack_usage = 0
  154. 145 0000 9093 0000 sts search_listener+1,r25
  155. 146 0004 8093 0000 sts search_listener,r24
  156. 147 0008 8091 0000 lds r24,rx_thread
  157. 148 000c 9091 0000 lds r25,rx_thread+1
  158. 149 0010 892B or r24,r25
  159. 150 0012 01F4 brne .L23
  160. 151 0014 20E8 ldi r18,lo8(-128)
  161. 152 0016 31E0 ldi r19,lo8(1)
  162. 153 0018 40E0 ldi r20,0
  163. 154 001a 50E0 ldi r21,0
  164. 155 001c 60E0 ldi r22,lo8(gs(SsdpReceiver))
  165. 156 001e 70E0 ldi r23,hi8(gs(SsdpReceiver))
  166. 157 0020 80E0 ldi r24,lo8(.LC3)
  167. 158 0022 90E0 ldi r25,hi8(.LC3)
  168. 159 0024 0E94 0000 call NutThreadCreate
  169. 160 0028 9093 0000 sts rx_thread+1,r25
  170. 161 002c 8093 0000 sts rx_thread,r24
  171. 162 .L23:
  172. 163 0030 81E0 ldi r24,lo8(1)
  173. 164 0032 90E0 ldi r25,0
  174. 165 0034 2091 0000 lds r18,rx_thread
  175. GAS LISTING /tmp/ccK7t3Wf.s page 4
  176. 166 0038 3091 0000 lds r19,rx_thread+1
  177. 167 003c 232B or r18,r19
  178. 168 003e 01F0 breq .L24
  179. 169 0040 80E0 ldi r24,0
  180. 170 0042 90E0 ldi r25,0
  181. 171 .L24:
  182. 172 0044 9195 neg r25
  183. 173 0046 8195 neg r24
  184. 174 0048 9109 sbc r25,__zero_reg__
  185. 175 004a 0895 ret
  186. 176 .size SsdpRegisterResponder, .-SsdpRegisterResponder
  187. 177 .section .text.SsdpUuidSetMac,"ax",@progbits
  188. 178 .global SsdpUuidSetMac
  189. 179 .type SsdpUuidSetMac, @function
  190. 180 SsdpUuidSetMac:
  191. 181 0000 0F93 push r16
  192. 182 0002 1F93 push r17
  193. 183 0004 CF93 push r28
  194. 184 0006 DF93 push r29
  195. 185 /* prologue: function */
  196. 186 /* frame size = 0 */
  197. 187 /* stack size = 4 */
  198. 188 .L__stack_usage = 4
  199. 189 0008 8B01 movw r16,r22
  200. 190 000a 6DE2 ldi r22,lo8(45)
  201. 191 000c 70E0 ldi r23,0
  202. 192 000e 0E94 0000 call strrchr
  203. 193 0012 0097 sbiw r24,0
  204. 194 0014 01F0 breq .L28
  205. 195 0016 DC01 movw r26,r24
  206. 196 0018 1296 adiw r26,2
  207. 197 001a E801 movw r28,r16
  208. 198 001c 0E96 adiw r24,14
  209. 199 .L30:
  210. 200 001e 9E01 movw r18,r28
  211. 201 0020 AD01 movw r20,r26
  212. 202 0022 4150 subi r20,1
  213. 203 0024 5109 sbc r21,__zero_reg__
  214. 204 0026 E991 ld r30,Y+
  215. 205 0028 E295 swap r30
  216. 206 002a EF70 andi r30,lo8(15)
  217. 207 002c F0E0 ldi r31,0
  218. 208 002e E050 subi r30,lo8(-(hexdigit.2789))
  219. 209 0030 F040 sbci r31,hi8(-(hexdigit.2789))
  220. 210 0032 6081 ld r22,Z
  221. 211 0034 FA01 movw r30,r20
  222. 212 0036 6083 st Z,r22
  223. 213 0038 F901 movw r30,r18
  224. 214 003a 2081 ld r18,Z
  225. 215 003c E22F mov r30,r18
  226. 216 003e EF70 andi r30,lo8(15)
  227. 217 0040 F0E0 ldi r31,0
  228. 218 0042 E050 subi r30,lo8(-(hexdigit.2789))
  229. 219 0044 F040 sbci r31,hi8(-(hexdigit.2789))
  230. 220 0046 2081 ld r18,Z
  231. 221 0048 2C93 st X,r18
  232. 222 004a 1296 adiw r26,2
  233. GAS LISTING /tmp/ccK7t3Wf.s page 5
  234. 223 004c A817 cp r26,r24
  235. 224 004e B907 cpc r27,r25
  236. 225 0050 01F4 brne .L30
  237. 226 .L28:
  238. 227 /* epilogue start */
  239. 228 0052 DF91 pop r29
  240. 229 0054 CF91 pop r28
  241. 230 0056 1F91 pop r17
  242. 231 0058 0F91 pop r16
  243. 232 005a 0895 ret
  244. 233 .size SsdpUuidSetMac, .-SsdpUuidSetMac
  245. 234 .section .text.SsdpSplitWords,"ax",@progbits
  246. 235 .global SsdpSplitWords
  247. 236 .type SsdpSplitWords, @function
  248. 237 SsdpSplitWords:
  249. 238 0000 AF92 push r10
  250. 239 0002 BF92 push r11
  251. 240 0004 CF92 push r12
  252. 241 0006 DF92 push r13
  253. 242 0008 EF92 push r14
  254. 243 000a FF92 push r15
  255. 244 000c 0F93 push r16
  256. 245 000e 1F93 push r17
  257. 246 0010 CF93 push r28
  258. 247 0012 DF93 push r29
  259. 248 /* prologue: function */
  260. 249 /* frame size = 0 */
  261. 250 /* stack size = 10 */
  262. 251 .L__stack_usage = 10
  263. 252 0014 EC01 movw r28,r24
  264. 253 0016 5901 movw r10,r18
  265. 254 0018 8A01 movw r16,r20
  266. 255 001a E12C mov r14,__zero_reg__
  267. 256 001c F12C mov r15,__zero_reg__
  268. 257 001e C62E mov r12,r22
  269. 258 0020 660F lsl r22
  270. 259 0022 DD08 sbc r13,r13
  271. 260 .L34:
  272. 261 0024 EA14 cp r14,r10
  273. 262 0026 FB04 cpc r15,r11
  274. 263 0028 04F4 brge .L43
  275. 264 002a F801 movw r30,r16
  276. 265 002c C193 st Z+,r28
  277. 266 002e D193 st Z+,r29
  278. 267 0030 8F01 movw r16,r30
  279. 268 0032 8881 ld r24,Y
  280. 269 0034 8823 tst r24
  281. 270 0036 01F0 breq .L35
  282. 271 0038 B601 movw r22,r12
  283. 272 003a CE01 movw r24,r28
  284. 273 003c 0E94 0000 call strchr
  285. 274 0040 0097 sbiw r24,0
  286. 275 0042 01F4 brne .L36
  287. 276 0044 CE01 movw r24,r28
  288. 277 0046 0196 adiw r24,1
  289. 278 .L37:
  290. 279 0048 EC01 movw r28,r24
  291. GAS LISTING /tmp/ccK7t3Wf.s page 6
  292. 280 004a 0196 adiw r24,1
  293. 281 004c 2881 ld r18,Y
  294. 282 004e 2111 cpse r18,__zero_reg__
  295. 283 0050 00C0 rjmp .L37
  296. 284 0052 00C0 rjmp .L35
  297. 285 .L36:
  298. 286 0054 EC01 movw r28,r24
  299. 287 0056 2196 adiw r28,1
  300. 288 0058 FC01 movw r30,r24
  301. 289 005a 1082 st Z,__zero_reg__
  302. 290 .L35:
  303. 291 005c FFEF ldi r31,-1
  304. 292 005e EF1A sub r14,r31
  305. 293 0060 FF0A sbc r15,r31
  306. 294 0062 00C0 rjmp .L34
  307. 295 .L43:
  308. 296 /* epilogue start */
  309. 297 0064 DF91 pop r29
  310. 298 0066 CF91 pop r28
  311. 299 0068 1F91 pop r17
  312. 300 006a 0F91 pop r16
  313. 301 006c FF90 pop r15
  314. 302 006e EF90 pop r14
  315. 303 0070 DF90 pop r13
  316. 304 0072 CF90 pop r12
  317. 305 0074 BF90 pop r11
  318. 306 0076 AF90 pop r10
  319. 307 0078 0895 ret
  320. 308 .size SsdpSplitWords, .-SsdpSplitWords
  321. 309 .section .rodata
  322. 310 .type hexdigit.2789, @object
  323. 311 .size hexdigit.2789, 17
  324. 312 hexdigit.2789:
  325. 313 0000 3031 3233 .string "0123456789abcdef"
  326. 313 3435 3637
  327. 313 3839 6162
  328. 313 6364 6566
  329. 313 00
  330. 314 .local search_listener
  331. 315 .comm search_listener,2,1
  332. 316 .local notification_listener
  333. 317 .comm notification_listener,2,1
  334. 318 .local rx_thread
  335. 319 .comm rx_thread,2,1
  336. 320 .global ct_239_255_255_250
  337. 321 .type ct_239_255_255_250, @object
  338. 322 .size ct_239_255_255_250, 16
  339. 323 ct_239_255_255_250:
  340. 324 0011 3233 392E .string "239.255.255.250"
  341. 324 3235 352E
  342. 324 3235 352E
  343. 324 3235 3000
  344. 325 .global ct_upnp_rootdevice
  345. 326 .type ct_upnp_rootdevice, @object
  346. 327 .size ct_upnp_rootdevice, 16
  347. 328 ct_upnp_rootdevice:
  348. 329 0021 7570 6E70 .string "upnp:rootdevice"
  349. GAS LISTING /tmp/ccK7t3Wf.s page 7
  350. 329 3A72 6F6F
  351. 329 7464 6576
  352. 329 6963 6500
  353. 330 .global ct_uuid_
  354. 331 .type ct_uuid_, @object
  355. 332 .size ct_uuid_, 6
  356. 333 ct_uuid_:
  357. 334 0031 7575 6964 .string "uuid:"
  358. 334 3A00
  359. 335 .ident "GCC: (GNU) 5.3.0"
  360. 336 .global __do_copy_data
  361. 337 .global __do_clear_bss
  362. GAS LISTING /tmp/ccK7t3Wf.s page 8
  363. DEFINED SYMBOLS
  364. *ABS*:0000000000000000 ssdp.c
  365. /tmp/ccK7t3Wf.s:2 *ABS*:000000000000003e __SP_H__
  366. /tmp/ccK7t3Wf.s:3 *ABS*:000000000000003d __SP_L__
  367. /tmp/ccK7t3Wf.s:4 *ABS*:000000000000003f __SREG__
  368. /tmp/ccK7t3Wf.s:5 *ABS*:000000000000003b __RAMPZ__
  369. /tmp/ccK7t3Wf.s:6 *ABS*:0000000000000000 __tmp_reg__
  370. /tmp/ccK7t3Wf.s:7 *ABS*:0000000000000001 __zero_reg__
  371. /tmp/ccK7t3Wf.s:17 .text.SsdpReceiver:0000000000000000 SsdpReceiver
  372. .bss:0000000000000000 search_listener
  373. /tmp/ccK7t3Wf.s:315 .bss:0000000000000002 notification_listener
  374. /tmp/ccK7t3Wf.s:100 .text.SsdpRegisterListener:0000000000000000 SsdpRegisterListener
  375. /tmp/ccK7t3Wf.s:317 .bss:0000000000000004 rx_thread
  376. /tmp/ccK7t3Wf.s:140 .text.SsdpRegisterResponder:0000000000000000 SsdpRegisterResponder
  377. /tmp/ccK7t3Wf.s:180 .text.SsdpUuidSetMac:0000000000000000 SsdpUuidSetMac
  378. /tmp/ccK7t3Wf.s:312 .rodata:0000000000000000 hexdigit.2789
  379. /tmp/ccK7t3Wf.s:237 .text.SsdpSplitWords:0000000000000000 SsdpSplitWords
  380. /tmp/ccK7t3Wf.s:323 .rodata:0000000000000011 ct_239_255_255_250
  381. /tmp/ccK7t3Wf.s:328 .rodata:0000000000000021 ct_upnp_rootdevice
  382. /tmp/ccK7t3Wf.s:333 .rodata:0000000000000031 ct_uuid_
  383. UNDEFINED SYMBOLS
  384. HttpuSessionCreate
  385. HttpuReceive
  386. HttpuGetHeader
  387. strncasecmp
  388. SsdpSendNotifications
  389. NutThreadCreate
  390. strrchr
  391. strchr
  392. __do_copy_data
  393. __do_clear_bss