aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/9term/SunOS.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/cmd/9term/SunOS.c b/src/cmd/9term/SunOS.c
new file mode 100644
index 00000000..6a37ab33
--- /dev/null
+++ b/src/cmd/9term/SunOS.c
@@ -0,0 +1,30 @@
+#include "9term.h"
+
+int
+getchildwd(int pid, char *wdir, int bufn)
+{
+ char path[256];
+ char cwd[256];
+
+ if(getcwd(cwd, sizeof cwd) < 0)
+ return -1;
+ snprint(path, sizeof path, "/proc/%d/cwd", pid);
+ if(chdir(path) < 0)
+ return -1;
+ if(getcwd(wdir, bufn) < 0)
+ return -1;
+ chdir(cwd);
+ return 0;
+}
+
+int
+getpts(int fd[], char *slave)
+{
+ fd[1] = open("/dev/ptmx", ORDWR);
+ if ((grantpt(fd[1]) < 0) || (unlockpt(fd[1]) < 0))
+ return -1;
+ fchmod(fd[1], 0622);
+ strcpy(slave, ptsname(fd[1]));
+ fd[0] = open(slave, OREAD);
+ return 0;
+}