Proper make clean - added deletion of detach code
[retty.git] / detach.S
blob2c4ce78f4275bd91a8c5baf439dd251afb72f7b4
1 /* This is bytecode inserted on the stack of the attached application. */
2 /* When you modify it, check that the length is dword-aligned. */
5         .equ    SYS_close,      6
6         .equ    SYS_getpid,     20
7         .equ    SYS_kill,       37
8         .equ    SYS_ioctl,      54
9         .equ    SYS_dup2,       63
11         .equ    TCGETS,         0x5401
12         .equ    TCSETS,         0x5402
14         .equ    SIGWINCH,       28
16         .equ    sizeof_termios, 60
18         .file   "detach.S"
19         .text
20 detach:
21         nop
22         nop
23         nop
24         nop
25         nop
26         nop
27         nop
28         nop
29         nop
30         nop
31         nop
32         nop
33         nop
34         nop
35         nop
36         nop
38         pusha
39         push    %ebp
40         mov     %esp, %ebp
41         sub     $sizeof_termios, %esp
45         mov     $SYS_ioctl, %eax
46         mov     $0, %ebx
47         mov     $TCGETS, %ecx
48         lea     -sizeof_termios(%ebp), %edx
49         int     $0x80
51         mov     $SYS_ioctl, %eax
52         mov     0x24(%ebp), %ebx
53         mov     $TCSETS, %ecx
54         lea     -sizeof_termios(%ebp), %edx
55         int     $0x80
58         mov     $SYS_ioctl, %eax
59         mov     $1, %ebx
60         mov     $TCGETS, %ecx
61         lea     -sizeof_termios(%ebp), %edx
62         int     $0x80
64         mov     $SYS_ioctl, %eax
65         mov     0x28(%ebp), %ebx
66         mov     $TCSETS, %ecx
67         lea     -sizeof_termios(%ebp), %edx
68         int     $0x80
71         mov     $SYS_ioctl, %eax
72         mov     $2, %ebx
73         mov     $TCGETS, %ecx
74         lea     -sizeof_termios(%ebp), %edx
75         int     $0x80
77         mov     $SYS_ioctl, %eax
78         mov     0x2c(%ebp), %ebx
79         mov     $TCSETS, %ecx
80         lea     -sizeof_termios(%ebp), %edx
81         int     $0x80
85         mov     $SYS_close, %eax
86         mov     $0x0, %ebx
87         int     $0x80
89         mov     $SYS_close, %eax
90         mov     $0x1, %ebx
91         int     $0x80
93         mov     $SYS_close, %eax
94         mov     $0x2, %ebx
95         int     $0x80
98         mov     $SYS_dup2, %eax
99         mov     0x2c(%ebp), %ebx
100         mov     $0x0, %ecx
101         int     $0x80
103         mov     $SYS_dup2, %eax
104         mov     0x28(%ebp), %ebx
105         mov     $0x1, %ecx
106         int     $0x80
108         mov     $SYS_dup2, %eax
109         mov     0x24(%ebp), %ebx
110         mov     $0x2, %ecx
111         int     $0x80
114         mov     $SYS_close, %eax
115         mov     0x2c(%ebp), %ebx
116         int     $0x80
118         mov     $SYS_close, %eax
119         mov     0x28(%ebp), %ebx
120         int     $0x80
122         mov     $SYS_close, %eax
123         mov     0x24(%ebp), %ebx
124         int     $0x80
127         mov     $SYS_getpid, %eax
128         int     $0x80
130         mov     %eax, %ebx
131         mov     $SYS_kill, %eax
132         mov     $SIGWINCH, %ecx
133         int     $0x80
135         leave
136         popa
138         /* The value will be rewritten */
139         add     $0x12000000, %esp
141         ret