1/*
2 * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include <stdlib.h>
7
8#include <fcntl.h>
9#include <stdio.h>
10
11#include <SupportDefs.h>
12
13#include <tty.h>
14
15
16int
17posix_openpt(int openFlags)
18{
19	return open("/dev/ptmx", openFlags);
20}
21
22
23int
24grantpt(int masterFD)
25{
26	return ioctl(masterFD, B_IOCTL_GRANT_TTY);
27}
28
29
30char*
31ptsname(int masterFD)
32{
33	int32 index;
34	if (ioctl(masterFD, B_IOCTL_GET_TTY_INDEX, &index, sizeof(index)) < 0)
35		return NULL;
36
37	static char buffer[32];
38
39	char letter = 'p';
40	snprintf(buffer, sizeof(buffer), "/dev/tt/%c%" B_PRIx32,
41		char(letter + index / 16), index % 16);
42
43	return buffer;
44}
45
46
47int
48unlockpt(int masterFD)
49{
50	// Noting to do ATM.
51	return 0;
52}
53