libnl 2.0

/tmp/buildd/libnl2-2.0/include/netlink/utils.h

00001 /*
00002  * netlink/utils.h              Utility Functions
00003  *
00004  *      This library is free software; you can redistribute it and/or
00005  *      modify it under the terms of the GNU Lesser General Public
00006  *      License as published by the Free Software Foundation version 2.1
00007  *      of the License.
00008  *
00009  * Copyright (c) 2003-2008 Thomas Graf <tgraf@suug.ch>
00010  */
00011 
00012 #ifndef NETLINK_UTILS_H_
00013 #define NETLINK_UTILS_H_
00014 
00015 #include <netlink/netlink.h>
00016 #include <netlink/list.h>
00017 
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021 
00022 /**
00023  * @name Probability Constants
00024  * @{
00025  */
00026 
00027 /**
00028  * Lower probability limit
00029  * @ingroup utils
00030  */
00031 #define NL_PROB_MIN 0x0
00032 
00033 /**
00034  * Upper probability limit
00035  * @ingroup utils
00036  */
00037 #define NL_PROB_MAX 0xffffffff
00038 
00039 /** @} */
00040 
00041 /* unit pretty-printing */
00042 extern double   nl_cancel_down_bytes(unsigned long long, char **);
00043 extern double   nl_cancel_down_bits(unsigned long long, char **);
00044 extern double   nl_cancel_down_us(uint32_t, char **);
00045 
00046 /* generic unit translations */
00047 extern long     nl_size2int(const char *);
00048 extern long     nl_prob2int(const char *);
00049 
00050 /* time translations */
00051 extern int      nl_get_hz(void);
00052 extern uint32_t nl_us2ticks(uint32_t);
00053 extern uint32_t nl_ticks2us(uint32_t);
00054 extern int      nl_str2msec(const char *, uint64_t *);
00055 extern char *   nl_msec2str(uint64_t, char *, size_t);
00056 
00057 /* link layer protocol translations */
00058 extern char *   nl_llproto2str(int, char *, size_t);
00059 extern int      nl_str2llproto(const char *);
00060 
00061 /* ethernet protocol translations */
00062 extern char *   nl_ether_proto2str(int, char *, size_t);
00063 extern int      nl_str2ether_proto(const char *);
00064 
00065 /* IP protocol translations */
00066 extern char *   nl_ip_proto2str(int, char *, size_t);
00067 extern int      nl_str2ip_proto(const char *);
00068 
00069 /* Dumping helpers */
00070 extern void     nl_new_line(struct nl_dump_params *);
00071 extern void     nl_dump(struct nl_dump_params *, const char *, ...);
00072 extern void     nl_dump_line(struct nl_dump_params *, const char *, ...);
00073 
00074 #ifdef __cplusplus
00075 }
00076 #endif
00077 
00078 #endif