]> rtime.felk.cvut.cz Git - orte.git/blobdiff - orte/include/rtai/compat.h
Reformat the sources with orte/uncrustify script
[orte.git] / orte / include / rtai / compat.h
index 04a7b653b0e8c28a8de238ac23e32bb67d0730d9..de74c6011affa85cf89944497b8204df8763b71f 100644 (file)
@@ -1,9 +1,19 @@
 /*
  *  $Id: compat.h,v 0.0.0.1             2004/11/14
  *
- *  AUTHOR: Jan Kiszka                  jan.kiszka@web.de
+ *  -------------------------------------------------------------------
+ *                                ORTE
+ *                      Open Real-Time Ethernet
  *
- *  ORTE - OCERA Real-Time Ethernet     http://www.ocera.org/
+ *                      Copyright (C) 2001-2006
+ *  Department of Control Engineering FEE CTU Prague, Czech Republic
+ *                      http://dce.felk.cvut.cz
+ *                      http://www.ocera.org
+ *
+ *  Author:              Petr Smolik       petr@smoliku.cz
+ *  Author - this code:         Jan Kiszka        jan.kiszka@web.de
+ *  Advisor:             Pavel Pisa
+ *  Project Responsible: Zdenek Hanzalek
  *  --------------------------------------------------------------------
  *
  *  This program is free software; you can redistribute it and/or modify
  *
  */
 
-#include "defines.h"  //macro MALLOC
+#ifndef _COMPAT_H
+#define _COMPAT_H
+
+#include <linux/if.h>
+#include <linux/in.h>
+#include <rtnet.h>
+#include "rtai_posix.h.patched"
+#include <defines.h>  //macro MALLOC
 
 /* This should become a bit more generic for all platforms... */
 #define rtl_printf  rt_printk
 
 typedef __u32 in_addr_t;
 
-static inline in_addr_t inet_addr(const char *cp)
+static inline in_addr_t
+inet_addr(const char *cp)
 {
-    return rt_inet_aton(cp);
+  return rt_inet_aton(cp);
 }
 
 
 static char inet_ntoa_buf[16];
 
-static inline char *inet_ntoa(struct in_addr in)
+static inline char *
+inet_ntoa(struct in_addr in)
 {
-    unsigned char *octet;
+  unsigned char *octet;
 
-    octet = (unsigned char *)&(in.s_addr);
-    sprintf(inet_ntoa_buf, "%u.%u.%u.%u", octet[0], octet[1], octet[2], octet[3]);
+  octet = (unsigned char *)&(in.s_addr);
+  sprintf(inet_ntoa_buf, "%u.%u.%u.%u", octet[0], octet[1], octet[2], octet[3]);
 
-    return inet_ntoa_buf;
+  return inet_ntoa_buf;
 }
 
 
 #define CLOCK_REALTIME  0
 
-static inline void clock_gettime(int dummy, struct timespec *time)
+static inline void
+clock_gettime(int dummy, struct timespec *time)
 {
-    count2timespec(rt_get_time(), time);
+  count2timespec(rt_get_time(), time);
 }
 
 
-static inline int atoi(const char* nptr)
+static inline int
+atoi(const char *nptr)
 {
-    return simple_strtol(nptr, (char **)NULL, 10);
+  return simple_strtol(nptr, (char **)NULL, 10);
 }
 
 
-static inline char *strdup(const char *s)
-{
-    size_t len = strlen(s)+1;
-    char *new_s;
-
-    new_s = MALLOC(len);
-    if (new_s == NULL)
-        return NULL;
-
-    memcpy(new_s, s, len);
-    return new_s;
-}
+#define sem_init                    sem_init_rt
+#define sem_destroy                 sem_destroy_rt
+#define sem_timedwait               sem_timedwait_rt
+#define sem_post                    sem_post_rt
+#define sem_getvalue                sem_getvalue_rt
 
 #define pthread_rwlock_init         pthread_rwlock_init_rt
 #define pthread_rwlock_rdlock       pthread_rwlock_rdlock_rt
@@ -90,13 +104,28 @@ static inline char *strdup(const char *s)
 #define pthread_join                pthread_join_rt
 #define pthread_exit                pthread_exit_rt
 
+#define pthread_cond_init           pthread_cond_init_rt
+#define pthread_cond_timedwait      pthread_cond_timedwait_rt
+#define pthread_cond_signal         pthread_cond_signal_rt
+#define pthread_cond_destroy        pthread_cond_destroy_rt
+
+#define socket                      socket_rt
+#define setsockopt                  setsockopt_rt
+#define getsockopt                  getsockopt_rt
+#define ioctl                       ioctl_rt
+#define bind                        bind_rt
+#define getsockname                 getsockname_rt
+#define recvfrom                    recvfrom_rt
+#define sendto                      sendto_rt
+
+static inline int
+close(int s)
+{
+  int result;
+
+  while ((result = close_rt(s)) == -EAGAIN)
+    rt_sleep(nano2count(100000000));
+  return result;
+}
 
-#define socket                      rt_socket
-#define close                       rt_socket_close
-#define setsockopt                  rt_socket_setsockopt
-#define getsockopt(a, b, c, d, e)   -1
-#define ioctl                       rt_socket_ioctl
-#define bind                        rt_socket_bind
-#define getsockname                 rt_socket_getsockname
-#define recvfrom                    rt_socket_recvfrom
-#define sendto                      rt_socket_sendto
+#endif /* _COMPAT_H */