Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F161585492
D21967.id65723.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D21967.id65723.diff
View Options
Index: head/share/man/man4/linux.4
===================================================================
--- head/share/man/man4/linux.4
+++ head/share/man/man4/linux.4
@@ -109,6 +109,14 @@
on the value of this sysctl.
.It Va compat.linux.oss_version
Linux Open Sound System version.
+.It Va compat.linux.preserve_vstatus
+When set to 1, it prevents Linux applications from resetting the
+.Xr termios 4
+VSTATUS setting.
+From a user perspective, this makes
+.Va SIGINFO
+work for Linux executables.
+Defaults to 0.
.Sh FILES
.Bl -tag -width /compat/linux/dev/shm -compact
.It Pa /compat/linux
Index: head/sys/compat/linux/linux_ioctl.h
===================================================================
--- head/sys/compat/linux/linux_ioctl.h
+++ head/sys/compat/linux/linux_ioctl.h
@@ -435,6 +435,7 @@
#define LINUX_VWERASE 14
#define LINUX_VLNEXT 15
#define LINUX_VEOL2 16
+#define LINUX_VSTATUS 18
#define LINUX_NCCS 19
#define LINUX_POSIX_VDISABLE '\0'
Index: head/sys/compat/linux/linux_ioctl.c
===================================================================
--- head/sys/compat/linux/linux_ioctl.c
+++ head/sys/compat/linux/linux_ioctl.c
@@ -500,6 +500,8 @@
lios->c_cc[LINUX_VDISCARD] = bios->c_cc[VDISCARD];
lios->c_cc[LINUX_VWERASE] = bios->c_cc[VWERASE];
lios->c_cc[LINUX_VLNEXT] = bios->c_cc[VLNEXT];
+ if (linux_preserve_vstatus)
+ lios->c_cc[LINUX_VSTATUS] = bios->c_cc[VSTATUS];
for (i=0; i<LINUX_NCCS; i++) {
if (i != LINUX_VMIN && i != LINUX_VTIME &&
@@ -614,6 +616,8 @@
bios->c_cc[VDISCARD] = lios->c_cc[LINUX_VDISCARD];
bios->c_cc[VWERASE] = lios->c_cc[LINUX_VWERASE];
bios->c_cc[VLNEXT] = lios->c_cc[LINUX_VLNEXT];
+ if (linux_preserve_vstatus)
+ bios->c_cc[VSTATUS] = lios->c_cc[LINUX_VSTATUS];
for (i=0; i<NCCS; i++) {
if (i != VMIN && i != VTIME &&
Index: head/sys/compat/linux/linux_mib.h
===================================================================
--- head/sys/compat/linux/linux_mib.h
+++ head/sys/compat/linux/linux_mib.h
@@ -62,4 +62,6 @@
#define linux_use26(t) (linux_kernver(t) >= LINUX_KERNVER_2006000)
+extern int linux_preserve_vstatus;
+
#endif /* _LINUX_MIB_H_ */
Index: head/sys/compat/linux/linux_mib.c
===================================================================
--- head/sys/compat/linux/linux_mib.c
+++ head/sys/compat/linux/linux_mib.c
@@ -62,6 +62,10 @@
SYSCTL_NODE(_compat, OID_AUTO, linux, CTLFLAG_RW, 0, "Linux mode");
+int linux_preserve_vstatus = 0;
+SYSCTL_INT(_compat_linux, OID_AUTO, preserve_vstatus, CTLFLAG_RWTUN,
+ &linux_preserve_vstatus, 0, "Preserve VSTATUS termios(4) flag");
+
static int linux_set_osname(struct thread *td, char *osname);
static int linux_set_osrelease(struct thread *td, char *osrelease);
static int linux_set_oss_version(struct thread *td, int oss_version);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Jul 6, 2:56 AM (10 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34733163
Default Alt Text
D21967.id65723.diff (2 KB)
Attached To
Mode
D21967: Add a hack to make ^T work for Linux binaries
Attached
Detach File
Event Timeline
Log In to Comment