1 /***************************************************************************
2 * Copyright (C) 2007 by www.databasecache.com *
3 * Contact: praba_tuty@databasecache.com *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 ***************************************************************************/
19 caddr_t
os::mmap(caddr_t addr
, size_t len
, int prot
, int flags
, int fildes
, off_t off
)
21 return ((caddr_t
)::mmap(addr
,len
,prot
,flags
,fildes
,off
));
24 int os::munmap(caddr_t addr
, size_t len
)
26 return ::munmap(addr
, len
);
30 shared_memory_id
os::shm_create(shared_memory_key key
, size_t size
, int flag
)
32 return ::shmget(key
, size
, IPC_CREAT
| IPC_EXCL
| flag
);
33 //return ::shmget(key, size, IPC_CREAT | flag);
36 shared_memory_id
os::shm_open(shared_memory_key key
, size_t size
, int flag
)
38 return ::shmget(key
, size
, flag
);
40 int os::shmctl(int shmid
, int cmd
)
42 return ::shmctl(shmid
, cmd
, NULL
);
45 void* os::shm_attach(shared_memory_id id
, const void *ptr
, int flag
)
47 return ::shmat(id
, ptr
, flag
);
50 int os::shm_detach (void* addr
)
52 return ::shmdt((char*)addr
);
55 double os::floor(double val
)
60 int os::gettimeofday(struct timeval
*tp
)
63 retval
=::gettimeofday(tp
, NULL
);
67 struct tm
* os::localtime(long *secs
)
69 return ::localtime(secs
);
76 pthread_t
os::getthrid()
78 return ::pthread_self();
84 int os::openFile(const char *name
, FileOpenMode flags
, size_t size
)
87 //mode_t mode = S_IRWXU | S_IRGRP | S_IWGRP ;
88 mode_t mode
= (mode_t
)0755 ;
89 retval
=::open(name
, flags
, mode
);
92 os::lseek(retval
, size
-1, SEEK_SET
);
93 char *buf
= (char*)" ";
94 os::write(retval
, buf
, 1);
98 int os::closeFile(int fd
)
103 off_t
os::lseek(int fildes
, off_t offset
, int whence
)
105 return ::lseek(fildes
, offset
, whence
);
108 size_t os::write(int fildes
, char *buf
, size_t size
)
110 return ::write(fildes
, buf
, size
);
113 int os::msync(caddr_t addr
, size_t len
, int flags
)
115 return ::msync(addr
, len
, flags
);
117 int os::fsync(int fildes
)
119 return ::fsync(fildes
);
122 char* os::encrypt(const char *key
, const char *salt
)
124 return ::crypt(key
, salt
);
127 void* os::memset(void *src
, int c
, size_t size
)
129 return::memset(src
, c
, size
);
132 void* os::memcpy(void *src
, const void *dest
, size_t size
)
134 return ::memcpy(src
, dest
, size
);
137 int os::memcmp(const void *s1
, const void *s2
, size_t size
)
139 return ::memcmp(s1
, s2
, size
);
141 sighandler_t
os::signal(int signum
, sighandler_t handler
)
143 return ::signal(signum
, handler
);
146 size_t os::alignLong(size_t size
)
148 return ((size
- 1) | (sizeof(long) - 1)) + 1;
151 size_t os::align(size_t size
)
154 return ((size
- 1) | (sizeof(long) - 1)) + 1;
157 int os::select(int nfds
, fd_set
*readfds
, fd_set
*writefds
,
158 fd_set
*exceptfds
, struct timeval
* timeout
)
160 return ::select(nfds
, readfds
, writefds
, exceptfds
, timeout
);
164 char* os::getenv(const char *envVarName
)
167 retVal
= ::getenv(envVarName
);
171 int os::setenv(const char *envVarName
, const char *value
)
173 return ::setenv(envVarName
, value
,1);
176 int os::kill(pid_t pid
, int sig
)
178 return ::kill(pid
, sig
);
180 bool os::atobool(char *value
)
182 if (strlen(value
) ==3 && strncasecmp(value
,"YES",3)==0) return true;
183 else if (strlen(value
) ==2 && strncasecmp(value
,"NO", 2)==0) return false;
184 else if (strlen(value
) ==4 && strncasecmp(value
,"true",4)==0) return true;
185 else if (strlen(value
) ==5 && strncasecmp(value
,"false",5)==0) return false;
188 pid_t
os::createProcess(const char* cmdName
, const char *arg0
, ...)
192 if (pid
== (pid_t
) -1 )
194 printf("Process creation failed\n");
212 while(argv
[i
++]=va_arg(ap
,char *));
215 pid
=::execl(argv
[0],argv
[1]);break;
217 pid
=::execl(argv
[0],argv
[1],argv
[2]);break;
219 pid
=::execl(argv
[0],argv
[1],argv
[2],argv
[3]);break;
221 pid
=::execl(argv
[0],argv
[1],argv
[2],argv
[3],argv
[4]);break;
223 printf("only three options allowed\n");
227 printf("Exec failed\n");
235 size_t os::send(int fd
, const void *buf
, size_t len
, int flags
)
237 return ::send(fd
, buf
, len
, flags
);
239 size_t os::recv(int fd
, void *buf
, size_t len
, int flags
)
241 return ::recv(fd
, buf
, len
, flags
);