1 /* modified for Borland C 3.1 and djgpp v2.01 Jan. 31, 1997 by K.Okabe */
2 /* Last modified: Aug 5, 1998 by WILLs (Katsuyuki Okabe) */
3 
4 #if defined(_MSC_VER) || defined(__MINGW32__) || defined(__TURBOC__)
5 
6 #ifdef OS2
7 # define INCL_DOSPROCESS
8 # include <os2.h>
9 # if _MSC_VER == 510
10 #  define DosGetPID DosGetPid
11 # endif
12 #else
13 # include <stdlib.h>
14 # include <process.h>
15 # include <dos.h>
16 # undef getpid
17 #endif
18 
19 #ifndef WIN32
getpid(void)20 int getpid(void)
21 {
22 #ifdef OS2
23 	PIDINFO	PidInfo;
24 
25 	DosGetPID(&PidInfo);
26 	return(PidInfo.pid);
27 #else
28 	return _psp;
29 #endif
30 }
31 #endif
32 
getuid(void)33 unsigned int getuid (void)
34 {
35   return (0);                   /* root! */
36 }
37 
geteuid(void)38 unsigned int geteuid (void)
39 {
40   return (0);
41 }
42 
getgid(void)43 unsigned int getgid (void)
44 {
45   return (0);
46 }
47 
getegid(void)48 unsigned int getegid (void)
49 {
50   return (0);
51 }
52 
53 #endif
54 
getpgrp(void)55 int getpgrp(void)
56 {
57   return (0);
58 }
59 
60 #if defined(DJGPP) && DJGPP >= 2
61 
62 #include <go32.h>
63 #include <sys/farptr.h>
64 
65 int
getpid(void)66 getpid(void)
67 {
68   return (int) (_go32_info_block.linear_address_of_original_psp >> 16);
69 }
70 
71 int
getppid(void)72 getppid(void)
73 {
74   return (int) _farpeekw(_dos_ds, _go32_info_block.linear_address_of_original_psp + 0x16);
75 }
76 
77 #else /* ! (DJGPP >= 2) */
78 
79 #if defined(_MSC_VER) || defined(__GO32__) || defined(__MINGW32__) || defined(__TURBOC__)
getppid(void)80 int getppid(void)
81 {
82 #ifdef OS2
83 	PIDINFO	PidInfo;
84 
85 	DosGetPID(&PidInfo);
86 	return(PidInfo.pidParent);
87 #else
88 #ifndef WIN32
89 	return *(int *)(((unsigned long)_psp << 16) + 0x16);
90 #else
91 	return 0;
92 #endif
93 #endif
94 }
95 #endif
96 #endif /* ! (DJGPP >= 2) */
97