Table Of Contents

Previous topic

Testing your protocols with DCE

Next topic

DCE in a Nutshell

This Page

Technical Information


  • Currently the POSIX API (libc) is not fully supported by DCE. However there are already about 400 methods supported. As the goal of DCE is to allow to execute network applications, many methods related to the network are supported for example socket, connect, bind, listen, read, write, poll, select. The next chapter list the applications well tested using DCE.
  • Some methods are not usable with all options of DCE. For more details refer to chapter Coverage API that lists all the supported methods.
  • The scheduler is not as advanced as that of a kernel, for example if an infinite loop in a hosted application, DCE can not get out, but this should not happen in applications written correctly.

API Coverage

Below there is the list of the systems calls supported by DCE, the column named Type represents how the system call is implemented ie:

  1. DCE the method is fully rewritten,
  2. NATIVE the real corresponding system call is used.
API Coverage
System Call Name Domain Include file Type Remarks
gettimeofday Date & Time sys/time.h DCE  
time Date & Time time.h DCE  
asctime, ctime, gmtime, localtime Date & Time time.h DCE  
asctime_r, ctime_r, gmtime_r, localtime_r, mktime, strftime Date & Time time.h NATIVE  
clock_gettime Date & Time time.h NATIVE Should not be NATIVE, do not use for now.
read IO unistd.h DCE  
write IO unistd.h DCE  
writev IO sys/uio.h DCE  
clearerr IO stdio.h DCE  
setbuf, setbuffer, setlinebuf, setvbuf IO stdio.h DCE  
fseek, ftell, rewind, fgetpos, fsetpos IO stdio.h DCE  
printf IO stdio.h DCE  
fprintf IO stdio.h NATIVE  
sprintf, snprintf IO stdio.h NATIVE  
asprintf, vasprintf IO stdio.h NATIVE  
dprintf, vdprintf IO stdio.h NATIVE  
fgetc, fgetc_unlocked IO stdio.h DCE  
getc, getc_unlocked IO stdio.h NATIVE  
getchar, getchar_unlocked IO stdio.h DCE  
_IO_getc IO stdio.h DCE  
fputc, fputc_unlocked IO stdio.h DCE  
putc, putc_unlocked IO stdio.h NATIVE  
putchar, putchar_unlocked IO stdio.h DCE  
_IO_putc IO stdio.h DCE  
fgets, fgets_unlocked IO stdio.h DCE  
fputs, fputs_unlocked IO stdio.h DCE  
puts IO stdio.h DCE  
ungetc IO stdio.h DCE  
fclose IO stdio.h DCE  
fcloseall IO stdio.h DCE  
fopen, fdopen64, fdopen, freopen IO stdio.h DCE  
fflush, fflush_unlocked IO stdio.h DCE  
fread, fread_unlocked IO stdio.h DCE  
fwrite, fwrite_unlocked IO stdio.h DCE  
ferror, ferror_unlocked IO stdio.h DCE  
feof, feof_unlocked IO stdio.h DCE  
fileno, fileno_unlocked IO stdio.h DCE  
perror IO stdlib.h DCE  
vprintf IO stdarg.h DCE  
vfprintf, vsprintf, vsnprintf IO stdarg.h NATIVE  
fcntl IO fcntl.h DCE  
dup, dup2 IO unistd.h DCE  
open, open64 IO fcntl.h DCE  
close IO unistd.h DCE  
unlink IO unistd.h DCE  
remove IO stdio.h DCE  
mkdir IO sys/stat.h DCE  
rmdir IO unistd.h DCE  
select IO unistd.h DCE  
isatty IO unistd.h DCE  
ioctl IO sys/ioctl.h DCE  
poll IO poll.h DCE  
getcwd, getwd, get_current_dir_name IO unistd.h DCE  
chdir, fchdir IO unistd.h DCE  
alphasort, alphasort64, versionsort IO dirent.h NATIVE  
umask IO sys/stat.h DCE  
truncate, ftruncate IO unistd.h DCE  
ttyname IO unistd.h DCE  
lseek IO unistd.h DCE  
euidaccess, eaccess IO unistd.h DCE  
pathconf IO unistd.h NATIVE  
getpwnam, getpwuid, endpwent IO pwd.h DCE  
opendir, fdopendir IO dirent.h DCE  
readdir, readdir_r IO dirent.h DCE  
closedir IO dirent.h DCE  
dirfd IO dirent.h DCE  
rewinddir IO dirent.h DCE  
scandir IO dirent.h DCE  
unlinkat IO fcntl.h DCE  
pread, pwrite IO unistd.h DCE  
uname Kernel sys/utsname.h DCE  
sysconf Kernel unistd.h NATIVE  
calloc, malloc, free, realloc Memory Allocation stdlib.h DCE  
mmap, mmap64, munmap Memory Mappings sys/map.h DCE  
htonl Networking arpa/inet.h NATIVE  
htons Networking arpa/inet.h NATIVE  
ntohl Networking arpa/inet.h NATIVE  
htonl Networking arpa/inet.h NATIVE  
ntohs Networking arpa/inet.h NATIVE  
socket Networking sys/socket.h DCE Not all flavour are supported pleaselook at the doxygen doc.
getsockname Networking sys/socket.h DCE  
getpeername Networking sys/socket.h DCE  
bind Networking sys/socket.h DCE  
connect Networking sys/socket.h DCE  
inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, inet_netof Networking arpa/inet.h NATIVE  
inet_ntop Networking arpa/inet.h DCE  
inet_pton Networking arpa/inet.h NATIVE  
getsockopt, setsockopt Networking sys/socket.h DCE  
listen Networking sys/socket.h DCE  
accept Networking sys/socket.h DCE  
shutdown Networking sys/socket.h DCE  
send, sendto, sendmsg Networking sys/socket.h DCE  
recv, recvfrom, recvmsg Networking sys/socket.h DCE  
gethostbyname, gethostbyname2 Networking netdb.h DCE  
getaddrinfo, freeaddrinfo, gai_strerror Networking netdb.h DCE  
gethostent, sethostent, endhostset, hstrerror Networking netdb.h NATIVE  
herror Networking netdb.h DCE  
getprotoent, getprotobyname, getprotonumber, setprotoent, endprotoent Networking netdb.h NATIVE  
getservent, getservbyname, getservbyport, setservent, endservent Networking netdb.h NATIVE  
if_nametoindex Networking net/if.h DCE  
getnameinfo Networking sys/socket.h DCE  
ether_aton_r Networking netinet/ether.h NATIVE  
atexit Process stdlib.h DCE  
getpid, getppid Process unistd.h DCE  
getuid, geteuid Process unistd.h DCE  
setuid Process unistd.h DCE  
setgid Process unistd.h DCE  
seteuid, setegid Process unistd.h DCE  
setreuid, setregid Process unistd.h DCE  
setresuid, setresgid Process unistd.h DCE  
sched_yield Process sched.h DCE  
exit Process unistd.h DCE  
getenv Process stdlib.h DCE  
putenv Process stdlib.h DCE  
setenv, unsetenv Process stdlib.h DCE  
clearenv Process stdlib.h DCE  
fork Process unistd.h DCE Supported only with the Cooja Loader.
abort Process stdlib.h DCE  
execl, execlp, execle, execv, execvp, execve Process unistd.h DCE Supported only with the pthread fiber manager.
wait, waitpid Process sys/wait.h DCE  
sbrk Process unistd.h DCE  
getpagesize Process unistd.h DCE  
getgid, getegid Process unistd.h DCE  
gethostname Process unistd.h DCE  
getpgrp Process unistd.h DCE  
pipe Process unistd.h DCE  
__sigsetjmp, siglongjmp Process setjmp.h NATIVE Experimental, please do not use them.
getdtablesize Process unistd.h NATIVE  
random, srandom Random stdlib.h DCE  
rand, srand Random stdlib.h DCE  
drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 Random stdlib.h DCE  
drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r Random stdlib.h DCE  
signal Signal signal.h DCE  
sigaction Signal signal.h DCE  
sigemptyset, sigfillset, sigaddset, sigdelset, sigismember Signal signal.h NATIVE  
sigprocmask Signal signal.h DCE  
qsort Sort stdlib.h NATIVE  
strerror, strerror_h String string.h NATIVE  
setlocale String locale.h DCE Do nothing at all
strcoll String string.h NATIVE  
uselocale String locale.h NATIVE  
newlocale String locale.h NATIVE  
wctob String wchar.h NATIVE  
btowc String wchar.h NATIVE  
memset String string.h NATIVE  
memcpy String string.h NATIVE  
bcopy String string.h NATIVE  
memcmp String string.h NATIVE  
memmove String string.h NATIVE  
memchr String string.h NATIVE  
strcpy, strncpy String string.h NATIVE  
strcat, strncat String string.h NATIVE  
strcmp, strncmp String string.h NATIVE  
strlen, strnlen String string.h NATIVE  
strspn, strcspn String string.h NATIVE  
strchr, strrchr String string.h NATIVE  
strcasecmp, strncasecmp String string.h NATIVE  
strdup, strndup String string.h DCE  
getopt, getopt_long String unistd.h DCE  
atoi, atol, atoll, atof String stdlib.h NATIVE  
strtol, strtoll String stdlib.h DCE  
strtoul, strtoull String stdlib.h DCE  
strtod String stdlib.h DCE  
toupper, tolower String ctype.h NATIVE  
index, rindex String strings.h NATIVE  
strtok, strtok_r String string.h NATIVE  
sscanf String stdio.h NATIVE  
basename, dirname String libgen.h NATIVE  
bindtextdomain, textdomain, gettext String libintl.h NATIVE  
mbrlen String wchar.h NATIVE  
strtoimax, strtoumax String inttypes.h NATIVE  
openlog, syslog, closelog, vsyslog, setlogmask Syslog syslog.h DCE  
pthread_create Thread pthread.h DCE  
pthread_exit Thread pthread.h DCE  
pthread_self Thread pthread.h DCE  
pthread_once Thread pthread.h DCE  
pthread_getspecific, pthread_setspecific Thread pthread.h DCE  
pthread_key_create Thread pthread.h DCE  
pthread_key_delete Thread pthread.h DCE  
pthread_mutex_destroy, pthread_mutex_init Thread pthread.h DCE  
pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock Thread pthread.h DCE  
pthread_mutexattr_destroy, pthread_mutexattr_init Thread pthread.h DCE  
pthread_mutexattr_settype Thread pthread.h DCE  
pthread_cancel Thread pthread.h DCE  
pthread_kill Thread pthread.h DCE  
pthread_join Thread pthread.h DCE  
pthread_detach Thread pthread.h DCE  
pthread_cond_destroy, pthread_cond_init Thread pthread.h DCE  
pthread_cond_broadcast, pthread_cond_signal Thread pthread.h DCE  
pthread_cond_timedwait, pthread_cond_wait Thread pthread.h DCE  
pthread_condattr_destroy, pthread_condattr_init Thread pthread.h DCE  
sem_init Thread Synchronization semaphore.h DCE  
sem_destroy Thread Synchronization semaphore.h DCE  
sem_post Thread Synchronization semaphore.h DCE  
sem_wait, sem_trywait, sem_timedwait Thread Synchronization semaphore.h DCE  
sem_getvalue Thread Synchronization semaphore.h DCE  
sleep, usleep Timer unistd.h DCE  
nanosleep Timer time.h DCE  
getitimer, setitimer Timer sys/time.h DCE  
timerfd_create, timerfd_settime, timerfd_gettime Timer sys/timerfd.h DCE  
getgrnam Users & Groups grp.h NATIVE  
getrusage Users & Groups sys/resource.h NATIVE