diff options
Diffstat (limited to 'pa3_device_driver/char_driver_sample.s')
-rw-r--r-- | pa3_device_driver/char_driver_sample.s | 393 |
1 files changed, 393 insertions, 0 deletions
diff --git a/pa3_device_driver/char_driver_sample.s b/pa3_device_driver/char_driver_sample.s new file mode 100644 index 0000000..52b856b --- /dev/null +++ b/pa3_device_driver/char_driver_sample.s @@ -0,0 +1,393 @@ + +char_driver_sample.ko: file format elf64-x86-64 + + +Disassembly of section .text: + +0000000000000000 <__pfx_my_open>: + 0: 90 nop + 1: 90 nop + 2: 90 nop + 3: 90 nop + 4: 90 nop + 5: 90 nop + 6: 90 nop + 7: 90 nop + 8: 90 nop + 9: 90 nop + a: 90 nop + b: 90 nop + c: 90 nop + d: 90 nop + e: 90 nop + f: 90 nop + +0000000000000010 <my_open>: + 10: e8 00 00 00 00 call 15 <my_open+0x5> + 15: 55 push %rbp + 16: 31 c0 xor %eax,%eax + 18: 83 05 00 00 00 00 01 addl $0x1,0x0(%rip) # 1f <my_open+0xf> + 1f: 48 89 e5 mov %rsp,%rbp + 22: 5d pop %rbp + 23: e9 00 00 00 00 jmp 28 <my_open+0x18> + 28: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 2f: 00 + +0000000000000030 <__pfx_my_release>: + 30: 90 nop + 31: 90 nop + 32: 90 nop + 33: 90 nop + 34: 90 nop + 35: 90 nop + 36: 90 nop + 37: 90 nop + 38: 90 nop + 39: 90 nop + 3a: 90 nop + 3b: 90 nop + 3c: 90 nop + 3d: 90 nop + 3e: 90 nop + 3f: 90 nop + +0000000000000040 <my_release>: + 40: e8 00 00 00 00 call 45 <my_release+0x5> + 45: 55 push %rbp + 46: 31 c0 xor %eax,%eax + 48: 83 2d 00 00 00 00 01 subl $0x1,0x0(%rip) # 4f <my_release+0xf> + 4f: 48 89 e5 mov %rsp,%rbp + 52: 5d pop %rbp + 53: e9 00 00 00 00 jmp 58 <my_release+0x18> + 58: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) + 5f: 00 + +0000000000000060 <__pfx_my_llseek>: + 60: 90 nop + 61: 90 nop + 62: 90 nop + 63: 90 nop + 64: 90 nop + 65: 90 nop + 66: 90 nop + 67: 90 nop + 68: 90 nop + 69: 90 nop + 6a: 90 nop + 6b: 90 nop + 6c: 90 nop + 6d: 90 nop + 6e: 90 nop + 6f: 90 nop + +0000000000000070 <my_llseek>: + 70: e8 00 00 00 00 call 75 <my_llseek+0x5> + 75: 55 push %rbp + 76: 48 89 e5 mov %rsp,%rbp + 79: 83 fa 01 cmp $0x1,%edx + 7c: 74 23 je a1 <my_llseek+0x31> + 7e: 83 fa 02 cmp $0x2,%edx + 81: 74 43 je c6 <my_llseek+0x56> + 83: 85 d2 test %edx,%edx + 85: 74 1e je a5 <my_llseek+0x35> + 87: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 8e: e8 00 00 00 00 call 93 <my_llseek+0x23> + 93: 31 c0 xor %eax,%eax + 95: 5d pop %rbp + 96: 31 d2 xor %edx,%edx + 98: 31 f6 xor %esi,%esi + 9a: 31 ff xor %edi,%edi + 9c: e9 00 00 00 00 jmp a1 <my_llseek+0x31> + a1: 48 03 77 40 add 0x40(%rdi),%rsi + a5: 48 85 f6 test %rsi,%rsi + a8: 78 25 js cf <my_llseek+0x5f> + aa: b8 00 04 00 00 mov $0x400,%eax + af: 48 39 c6 cmp %rax,%rsi + b2: 48 0f 4e c6 cmovle %rsi,%rax + b6: 48 89 47 40 mov %rax,0x40(%rdi) + ba: 5d pop %rbp + bb: 31 d2 xor %edx,%edx + bd: 31 f6 xor %esi,%esi + bf: 31 ff xor %edi,%edi + c1: e9 00 00 00 00 jmp c6 <my_llseek+0x56> + c6: 48 81 c6 00 04 00 00 add $0x400,%rsi + cd: eb d6 jmp a5 <my_llseek+0x35> + cf: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + d6: e8 00 00 00 00 call db <my_llseek+0x6b> + db: 48 c7 c0 ea ff ff ff mov $0xffffffffffffffea,%rax + e2: 5d pop %rbp + e3: 31 d2 xor %edx,%edx + e5: 31 f6 xor %esi,%esi + e7: 31 ff xor %edi,%edi + e9: e9 00 00 00 00 jmp ee <my_llseek+0x7e> + ee: 66 90 xchg %ax,%ax + +00000000000000f0 <__pfx_my_read>: + f0: 90 nop + f1: 90 nop + f2: 90 nop + f3: 90 nop + f4: 90 nop + f5: 90 nop + f6: 90 nop + f7: 90 nop + f8: 90 nop + f9: 90 nop + fa: 90 nop + fb: 90 nop + fc: 90 nop + fd: 90 nop + fe: 90 nop + ff: 90 nop + +0000000000000100 <my_read>: + 100: e8 00 00 00 00 call 105 <my_read+0x5> + 105: 55 push %rbp + 106: 48 8b 39 mov (%rcx),%rdi + 109: 48 89 e5 mov %rsp,%rbp + 10c: 41 56 push %r14 + 10e: 41 55 push %r13 + 110: 41 54 push %r12 + 112: 53 push %rbx + 113: bb 00 04 00 00 mov $0x400,%ebx + 118: 48 29 fb sub %rdi,%rbx + 11b: 74 72 je 18f <my_read+0x8f> + 11d: 48 39 d3 cmp %rdx,%rbx + 120: 4c 8d a7 00 00 00 00 lea 0x0(%rdi),%r12 + 127: 48 0f 47 da cmova %rdx,%rbx + 12b: 48 81 fb ff ff ff 7f cmp $0x7fffffff,%rbx + 132: 77 7e ja 1b2 <my_read+0xb2> + 134: 49 89 f6 mov %rsi,%r14 + 137: ba 01 00 00 00 mov $0x1,%edx + 13c: 48 89 de mov %rbx,%rsi + 13f: 4c 89 e7 mov %r12,%rdi + 142: 49 89 cd mov %rcx,%r13 + 145: e8 00 00 00 00 call 14a <my_read+0x4a> + 14a: 48 89 da mov %rbx,%rdx + 14d: 4c 89 e6 mov %r12,%rsi + 150: 4c 89 f7 mov %r14,%rdi + 153: e8 00 00 00 00 call 158 <my_read+0x58> + 158: 48 85 c0 test %rax,%rax + 15b: 75 57 jne 1b4 <my_read+0xb4> + 15d: 49 01 5d 00 add %rbx,0x0(%r13) + 161: 48 c7 c2 00 00 00 00 mov $0x0,%rdx + 168: 48 89 de mov %rbx,%rsi + 16b: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 172: e8 00 00 00 00 call 177 <my_read+0x77> + 177: 48 89 d8 mov %rbx,%rax + 17a: 5b pop %rbx + 17b: 41 5c pop %r12 + 17d: 41 5d pop %r13 + 17f: 41 5e pop %r14 + 181: 5d pop %rbp + 182: 31 d2 xor %edx,%edx + 184: 31 c9 xor %ecx,%ecx + 186: 31 f6 xor %esi,%esi + 188: 31 ff xor %edi,%edi + 18a: e9 00 00 00 00 jmp 18f <my_read+0x8f> + 18f: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 196: e8 00 00 00 00 call 19b <my_read+0x9b> + 19b: 31 c0 xor %eax,%eax + 19d: 5b pop %rbx + 19e: 41 5c pop %r12 + 1a0: 41 5d pop %r13 + 1a2: 41 5e pop %r14 + 1a4: 5d pop %rbp + 1a5: 31 d2 xor %edx,%edx + 1a7: 31 c9 xor %ecx,%ecx + 1a9: 31 f6 xor %esi,%esi + 1ab: 31 ff xor %edi,%edi + 1ad: e9 00 00 00 00 jmp 1b2 <my_read+0xb2> + 1b2: 0f 0b ud2 + 1b4: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 1bb: e8 00 00 00 00 call 1c0 <my_read+0xc0> + 1c0: 48 c7 c0 f2 ff ff ff mov $0xfffffffffffffff2,%rax + 1c7: eb b1 jmp 17a <my_read+0x7a> + 1c9: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) + +00000000000001d0 <__pfx_init_module>: + 1d0: 90 nop + 1d1: 90 nop + 1d2: 90 nop + 1d3: 90 nop + 1d4: 90 nop + 1d5: 90 nop + 1d6: 90 nop + 1d7: 90 nop + 1d8: 90 nop + 1d9: 90 nop + 1da: 90 nop + 1db: 90 nop + 1dc: 90 nop + 1dd: 90 nop + 1de: 90 nop + 1df: 90 nop + +00000000000001e0 <init_module>: + 1e0: e8 00 00 00 00 call 1e5 <init_module+0x5> + 1e5: 55 push %rbp + 1e6: 48 c7 c6 00 00 00 00 mov $0x0,%rsi + 1ed: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 1f4: 48 89 e5 mov %rsp,%rbp + 1f7: 53 push %rbx + 1f8: e8 00 00 00 00 call 1fd <init_module+0x1d> + 1fd: 49 c7 c0 00 00 00 00 mov $0x0,%r8 + 204: 48 c7 c1 00 00 00 00 mov $0x0,%rcx + 20b: 31 f6 xor %esi,%esi + 20d: ba 00 01 00 00 mov $0x100,%edx + 212: bf ff 01 00 00 mov $0x1ff,%edi + 217: e8 00 00 00 00 call 21c <init_module+0x3c> + 21c: 89 c3 mov %eax,%ebx + 21e: 85 c0 test %eax,%eax + 220: 75 2a jne 24c <init_module+0x6c> + 222: 48 c7 c6 00 00 00 00 mov $0x0,%rsi + 229: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 230: e8 00 00 00 00 call 235 <init_module+0x55> + 235: 89 d8 mov %ebx,%eax + 237: 48 8b 5d f8 mov -0x8(%rbp),%rbx + 23b: c9 leave + 23c: 31 d2 xor %edx,%edx + 23e: 31 c9 xor %ecx,%ecx + 240: 31 f6 xor %esi,%esi + 242: 31 ff xor %edi,%edi + 244: 45 31 c0 xor %r8d,%r8d + 247: e9 00 00 00 00 jmp 24c <init_module+0x6c> + 24c: 89 c6 mov %eax,%esi + 24e: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 255: e8 00 00 00 00 call 25a <init_module+0x7a> + 25a: 89 d8 mov %ebx,%eax + 25c: 48 8b 5d f8 mov -0x8(%rbp),%rbx + 260: c9 leave + 261: 31 d2 xor %edx,%edx + 263: 31 c9 xor %ecx,%ecx + 265: 31 f6 xor %esi,%esi + 267: 31 ff xor %edi,%edi + 269: 45 31 c0 xor %r8d,%r8d + 26c: e9 00 00 00 00 jmp 271 <init_module+0x91> + 271: 66 66 2e 0f 1f 84 00 data16 cs nopw 0x0(%rax,%rax,1) + 278: 00 00 00 00 + 27c: 0f 1f 40 00 nopl 0x0(%rax) + +0000000000000280 <__pfx_cleanup_module>: + 280: 90 nop + 281: 90 nop + 282: 90 nop + 283: 90 nop + 284: 90 nop + 285: 90 nop + 286: 90 nop + 287: 90 nop + 288: 90 nop + 289: 90 nop + 28a: 90 nop + 28b: 90 nop + 28c: 90 nop + 28d: 90 nop + 28e: 90 nop + 28f: 90 nop + +0000000000000290 <cleanup_module>: + 290: e8 00 00 00 00 call 295 <cleanup_module+0x5> + 295: 55 push %rbp + 296: 8b 05 00 00 00 00 mov 0x0(%rip),%eax # 29c <cleanup_module+0xc> + 29c: 48 89 e5 mov %rsp,%rbp + 29f: 85 c0 test %eax,%eax + 2a1: 75 3b jne 2de <cleanup_module+0x4e> + 2a3: 48 c7 c1 00 00 00 00 mov $0x0,%rcx + 2aa: ba 00 01 00 00 mov $0x100,%edx + 2af: 31 f6 xor %esi,%esi + 2b1: bf ff 01 00 00 mov $0x1ff,%edi + 2b6: e8 00 00 00 00 call 2bb <cleanup_module+0x2b> + 2bb: 48 c7 c6 00 00 00 00 mov $0x0,%rsi + 2c2: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 2c9: e8 00 00 00 00 call 2ce <cleanup_module+0x3e> + 2ce: 5d pop %rbp + 2cf: 31 c0 xor %eax,%eax + 2d1: 31 d2 xor %edx,%edx + 2d3: 31 c9 xor %ecx,%ecx + 2d5: 31 f6 xor %esi,%esi + 2d7: 31 ff xor %edi,%edi + 2d9: e9 00 00 00 00 jmp 2de <cleanup_module+0x4e> + 2de: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 2e5: e8 00 00 00 00 call 2ea <cleanup_module+0x5a> + 2ea: 5d pop %rbp + 2eb: 31 c0 xor %eax,%eax + 2ed: 31 d2 xor %edx,%edx + 2ef: 31 c9 xor %ecx,%ecx + 2f1: 31 f6 xor %esi,%esi + 2f3: 31 ff xor %edi,%edi + 2f5: e9 00 00 00 00 jmp 2fa <cleanup_module+0x6a> + 2fa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) + +0000000000000300 <__pfx_my_write>: + 300: 90 nop + 301: 90 nop + 302: 90 nop + 303: 90 nop + 304: 90 nop + 305: 90 nop + 306: 90 nop + 307: 90 nop + 308: 90 nop + 309: 90 nop + 30a: 90 nop + 30b: 90 nop + 30c: 90 nop + 30d: 90 nop + 30e: 90 nop + 30f: 90 nop + +0000000000000310 <my_write>: + 310: e8 00 00 00 00 call 315 <my_write+0x5> + 315: 55 push %rbp + 316: 48 8b 39 mov (%rcx),%rdi + 319: 48 89 e5 mov %rsp,%rbp + 31c: 41 56 push %r14 + 31e: 41 55 push %r13 + 320: 41 54 push %r12 + 322: 53 push %rbx + 323: bb 00 04 00 00 mov $0x400,%ebx + 328: 48 29 fb sub %rdi,%rbx + 32b: 0f 84 85 00 00 00 je 3b6 <my_write+0xa6> + 331: 48 39 d3 cmp %rdx,%rbx + 334: 4c 8d a7 00 00 00 00 lea 0x0(%rdi),%r12 + 33b: 48 0f 47 da cmova %rdx,%rbx + 33f: 48 81 fb ff ff ff 7f cmp $0x7fffffff,%rbx + 346: 77 57 ja 39f <my_write+0x8f> + 348: 31 d2 xor %edx,%edx + 34a: 49 89 f5 mov %rsi,%r13 + 34d: 4c 89 e7 mov %r12,%rdi + 350: 48 89 de mov %rbx,%rsi + 353: 49 89 ce mov %rcx,%r14 + 356: e8 00 00 00 00 call 35b <my_write+0x4b> + 35b: 48 89 da mov %rbx,%rdx + 35e: 4c 89 ee mov %r13,%rsi + 361: 4c 89 e7 mov %r12,%rdi + 364: e8 00 00 00 00 call 369 <my_write+0x59> + 369: 48 85 c0 test %rax,%rax + 36c: 75 33 jne 3a1 <my_write+0x91> + 36e: 49 01 1e add %rbx,(%r14) + 371: 48 c7 c2 00 00 00 00 mov $0x0,%rdx + 378: 48 89 de mov %rbx,%rsi + 37b: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 382: e8 00 00 00 00 call 387 <my_write+0x77> + 387: 48 89 d8 mov %rbx,%rax + 38a: 5b pop %rbx + 38b: 41 5c pop %r12 + 38d: 41 5d pop %r13 + 38f: 41 5e pop %r14 + 391: 5d pop %rbp + 392: 31 d2 xor %edx,%edx + 394: 31 c9 xor %ecx,%ecx + 396: 31 f6 xor %esi,%esi + 398: 31 ff xor %edi,%edi + 39a: e9 00 00 00 00 jmp 39f <my_write+0x8f> + 39f: 0f 0b ud2 + 3a1: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 3a8: e8 00 00 00 00 call 3ad <my_write+0x9d> + 3ad: 48 c7 c0 f2 ff ff ff mov $0xfffffffffffffff2,%rax + 3b4: eb d4 jmp 38a <my_write+0x7a> + 3b6: 48 c7 c7 00 00 00 00 mov $0x0,%rdi + 3bd: e8 00 00 00 00 call 3c2 <my_write+0xb2> + 3c2: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax + 3c9: eb bf jmp 38a <my_write+0x7a> |