#ifndef ISRG_HELPERS_20060319_VZRGNTERNGTVEYGUVFFRZRFGREOHGFURVFYRNIVATFBBA #define ISRG_HELPERS_20060319_VZRGNTERNGTVEYGUVFFRZRFGREOHGFURVFYRNIVATFBBA #ifdef __cplusplus extern "C" { #endif #ifndef MODULE # include # include # include # include # include # include # include # include # include #endif #define ISRG_HELPER_TRACE_MAX_THREADS 4 #ifndef MODULE int * isrg_helper_get_trace_level (); #endif #define TRACE_PRINTF(level, fmt, ...) \ { \ if (debug_trace) \ { \ fprintf (stderr, "TRACE(%5lu,%3d): %s: %d: %s: " fmt, \ pthread_self (), (level), \ __FILE__, __LINE__, __func__, ## __VA_ARGS__); \ } \ } #define TRACE_ENTERING \ { \ if (debug_trace) \ { \ int *level = isrg_helper_get_trace_level (); \ TRACE_PRINTF (*level, "entering\n"); \ (*level)++; \ } \ } #define TRACE_LEAVING \ { \ if (debug_trace) \ { \ int *level = isrg_helper_get_trace_level (); \ (*level)--; \ TRACE_PRINTF (*level, "leaving\n"); \ } \ } #define VERY_VERBOSE_PRINTF(fmt, ...) \ { \ if (verbose_level > 1) \ { \ fprintf (stderr, "%s: %d: %s: " fmt, \ __FILE__, __LINE__, __func__, ## __VA_ARGS__); \ } \ } #define VERBOSE_PRINTF(fmt, ...) \ { \ if (verbose_level > 0) \ { \ fprintf (stderr, "%s: %d: %s: " fmt, \ __FILE__, __LINE__, __func__, ## __VA_ARGS__); \ } \ } #define ERROR_PRINTF(fmt, ...) \ { \ if (1) \ { \ fprintf (stderr, "ERROR: %s: %d: %s: " fmt, \ __FILE__, __LINE__, __func__, ## __VA_ARGS__); \ } \ } #define KVERY_VERBOSE_PRINTF(fmt, ...) \ { \ if (verbose_level > 1) \ { \ printk (KERN_INFO "%s: %d: %s: " fmt, \ __FILE__, __LINE__, __func__, ## __VA_ARGS__); \ } \ } #define KVERBOSE_PRINTF(fmt, ...) \ { \ if (verbose_level > 0) \ { \ printk (KERN_INFO "%s: %d: %s: " fmt, \ __FILE__, __LINE__, __func__, ## __VA_ARGS__); \ } \ } #define KWARN_PRINTF(fmt, ...) \ { \ if (1) \ { \ printk (KERN_INFO "WARNING: %s: %d: %s: " fmt, \ __FILE__, __LINE__, __func__, ## __VA_ARGS__); \ } \ } #define KERROR_PRINTF(fmt, ...) \ { \ if (1) \ { \ printk (KERN_CRIT "ERROR: %s: %d: %s: " fmt, \ __FILE__, __LINE__, __func__, ## __VA_ARGS__); \ } \ } #define isrg_helper_assert(cond) \ { \ if (!(cond)) \ { \ ERROR_PRINTF("assert failed!!!!!\n"); \ } \ } #define kisrg_helper_assert(cond) \ { \ if (!(cond)) \ { \ KERROR_PRINTF("assert failed!!!!!\n"); \ } \ } #ifndef MODULE int isrg_helper_sleep_msec (int msec_timeout); int isrg_helper_fd_select (int fd, int msec_timeout); int isrg_helper_set_sched_fifo (); long long isrg_helper_get_system_msec (); int isrg_helper_write_string_fd (int fd, char *s); int isrg_helper_read_fd (int fd, char *buf, int timeout_msec, int max_len); int isrg_helper_readline_fd (int fd, char *buf, int timeout_msec, int max_len); int isrg_helper_nmea_check_string (char *s, int n); int isrg_helper_open_serial_port (const char *name, int baud, struct termios *oldtio); //int isrg_helper_open_socket1 (const struct sockaddr_in *sin); int isrg_helper_open_socket (const char *addr, int port); extern int isrg_helper_sigint_quit; void isrg_helper_sigint_catcher (int foo); void isrg_helper_sigint_catcher2 (int foo); void isrg_helper_catch_sigint (); // confines angle between -M_PI and +M_PI: double isrg_helper_wrap_angle (double angle); #endif #ifndef DEG2RAD # define DEG2RAD (M_PI / 180.0) #endif #ifndef RAD2DEG # define RAD2DEG (180.0 / M_PI) #endif #ifndef THRESHOLD # define THRESHOLD(x, min, max) \ ( ((x) < (min))? (min) : (((x) > (max))? (max) : (x)) ) #endif #ifndef SIGN # define SIGN(x) (((x) < 0) ? -1 : 1) #endif #ifndef MIN # define MIN(a, b) ((a) < (b) ? (a) : (b)) #endif #ifndef MAX # define MAX(a, b) ((a) > (b) ? (a) : (b)) #endif #ifndef MIN3 # define MIN3(a, b, c) (MIN (MIN (a, b), c)) #endif #ifndef MAX3 # define MAX3(a, b, c) (MAX (MAX (a, b), c)) #endif #ifdef __cplusplus } #endif #endif