diff options
author | Martin Burnicki <martin.burnicki@meinberg.de> | 2022-08-26 13:33:44 +0200 |
---|---|---|
committer | Martin Burnicki <martin.burnicki@meinberg.de> | 2022-08-26 13:33:44 +0200 |
commit | eaa66d56becdcf0e671f1b2e3dc2a5edb68b30cb (patch) | |
tree | af4578fe1332214c135fc51fc9967dedea88391f | |
parent | de28b56bc098c165648bd472105824ee8eeb1017 (diff) | |
download | mbgtools-lx-eaa66d56becdcf0e671f1b2e3dc2a5edb68b30cb.tar.gz mbgtools-lx-eaa66d56becdcf0e671f1b2e3dc2a5edb68b30cb.zip |
Update some mbglib files
-rw-r--r-- | mbglib/common/lan_util.c | 50 | ||||
-rw-r--r-- | mbglib/common/usbdefs.h | 43 |
2 files changed, 90 insertions, 3 deletions
diff --git a/mbglib/common/lan_util.c b/mbglib/common/lan_util.c index 84b5ef5..666b4c3 100644 --- a/mbglib/common/lan_util.c +++ b/mbglib/common/lan_util.c @@ -1,7 +1,7 @@ /************************************************************************** * - * $Id: lan_util.c 1.22 2021/05/18 14:13:48 daniel REL_M $ + * $Id: lan_util.c 1.23 2021/07/20 10:27:30 daniel REL_M $ * * Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany * @@ -10,6 +10,8 @@ * * ----------------------------------------------------------------------- * $Log: lan_util.c $ + * Revision 1.23 2021/07/20 10:27:30 daniel + * On SOC platforms use alternative method via proc interface to retrieve current IP address of the IPv4 default gateway. * Revision 1.22 2021/05/18 14:13:48 daniel * Fixed NUM_WORDS bug again * Revision 1.21 2021/05/17 13:23:22 daniel @@ -1490,6 +1492,8 @@ int get_port_ip4_broad_addr( const char *if_name, IP4_ADDR *p_addr ) #if defined( MBG_TGT_LINUX ) +#if !defined( USE_MBG_SOC) + static /*HDR*/ /** * @brief Read a requested message from the netlink socket. @@ -1563,6 +1567,7 @@ int nl_read( int sock_fd, char *buf_ptr, size_t buf_size, uint32_t seq_num, uint } // nl_read +#endif #if DEBUG_NETLINK @@ -1585,6 +1590,7 @@ void nl_log_bytes( const char *fnc, const char *info, const void *p, int n_byte #endif +#if !defined( USE_MBG_SOC) static /*HDR*/ int nl_parse_routes( struct nlmsghdr *nl_hdr, struct route_info *rt_info ) @@ -1690,6 +1696,8 @@ int nl_parse_routes( struct nlmsghdr *nl_hdr, struct route_info *rt_info ) } // nl_parse_routes +#endif // !defined( USE_MBG_SOC ) + #endif // defined( MBG_TGT_LINUX ) @@ -1708,6 +1716,8 @@ int get_ip4_gateway( IP4_ADDR *p_addr ) int rc = MBG_ERR_NOT_SUPP_ON_OS; #if defined( MBG_TGT_LINUX ) + +#if !defined( USE_MBG_SOC) struct nlmsghdr *nlmsg; struct route_info route_info; char msg_buf[8192]; // TODO Pretty large buffer, why 8192 ? @@ -1820,6 +1830,44 @@ out: if ( sock_fd >= 0 ) close( sock_fd ); +#else + + IP4_ADDR dest, gateway, mask; + unsigned int flags, refcnt, use, metric, mtu, window, irtt; + int fret = 0; + + char name[ IFNAMSIZ ]; + + FILE* f = fopen( "/proc/net/route", "r" ); + + if( !f ) + { + rc = MBG_ERR_IO; + goto out; + } + + while (fret != EOF) + { + fret = fscanf( f, "%s %08X %08X %04X %u %u %u %08X %u %u %u ", + name, (uint32_t*) &dest, (uint32_t*) &gateway, &flags, &refcnt, &use, &metric,(uint32_t*) &mask, &mtu, &window, &irtt ); + + if ( fret == 11 ) + { + if (dest == 0 && gateway != 0) + { + *p_addr = ntohl(gateway); + rc = MBG_SUCCESS; + break; + } + } + } + + fclose(f); + +out: + +#endif + #endif // defined( MBG_TGT_LINUX ) if ( mbg_rc_is_error( rc ) ) diff --git a/mbglib/common/usbdefs.h b/mbglib/common/usbdefs.h index 6991599..c2f4a82 100644 --- a/mbglib/common/usbdefs.h +++ b/mbglib/common/usbdefs.h @@ -1,7 +1,7 @@ /************************************************************************** * - * $Id: usbdefs.h 1.57 2021/09/02 12:55:48 torben.mueller REL_M $ + * $Id: usbdefs.h 1.62 2022/06/09 10:21:00 torben.mueller TRASH $ * * Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany * @@ -10,7 +10,17 @@ * * ----------------------------------------------------------------------- * $Log: usbdefs.h $ - * Revision 1.57 2021/09/02 12:55:48 torben.mueller + * Revision 1.62 2022/06/09 10:21:00 torben.mueller + * added definitons for BPE8NNN + * Revision 1.61 2022/05/23 11:22:10Z paul.kretz + * added definitons for CPE182, FDM182 and FDM182M + * Revision 1.60 2022/02/21 11:08:30Z daniel + * Added definitions for PSX210 + * Revision 1.59 2022/01/20 11:38:43 andre.hartmann + * added definitions for GNS182 and GNS182_UC + * Revision 1.58 2021/10/14 06:25:53Z isa.wegmann + * Add USB Device GPS182 + * Revision 1.57 2021/09/02 12:55:48Z torben.mueller * added VMX180 model code and name * Revision 1.56 2021/08/31 10:52:41Z paul.kretz * added VSG181H model code and name @@ -221,6 +231,9 @@ enum MBG_USB_CLASS_CODES MBG_USB_CLASS_RCG, ///< Radio Carrier Generator MBG_USB_CLASS_VMX, ///< Video Matrix + MBG_USB_CLASS_PSX, ///< PSX Multi-Port PTP card + + N_MBG_USB_CLASS ///< number of known Meinberg USB device class codes }; @@ -272,9 +285,11 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_FCU200 ( ( MBG_USB_CLASS_FCU << 8 ) | 0x02 ) // Fan (and power supply) Control Unit, supports FCU API. #define USB_DEV_CPE_01 ( ( MBG_USB_CLASS_CPE << 8 ) | 0x01 ) +#define USB_DEV_CPE182 ( ( MBG_USB_CLASS_CPE << 8 ) | 0x02 ) ///< Variant of CPE180 with EP4CE15 FPGA #define USB_DEV_GPS180 ( ( MBG_USB_CLASS_GPS << 8 ) | 0x01 ) #define USB_DEV_GPS190 ( ( MBG_USB_CLASS_GPS << 8 ) | 0x02 ) +#define USB_DEV_GPS182 ( ( MBG_USB_CLASS_GPS << 8 ) | 0x03 ) #define USB_DEV_LNO180 ( ( MBG_USB_CLASS_LNO << 8 ) | 0x01 ) @@ -292,6 +307,7 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_BPE2352 ( ( MBG_USB_CLASS_BPE << 8 ) | 0x04 ) // Formerly BPE_STM, time code AM and DCLS, plus 1 relay output #define USB_DEV_BPE8XXX ( ( MBG_USB_CLASS_BPE << 8 ) | 0x05 ) // Formerly BPE, port extender via multiplexer #define USB_DEV_BPE6042 ( ( MBG_USB_CLASS_BPE << 8 ) | 0x06 ) // Formerly BPE, isolated outputs via multiplexer +#define USB_DEV_BPE8NNN ( ( MBG_USB_CLASS_BPE << 8 ) | 0x07 ) // port extender via multiplexer used with the BPE8000 and BPE8008 PCBs #define USB_DEV_RSC_01 ( ( MBG_USB_CLASS_RSC << 8 ) | 0x01 ) // RSC used with M1000 / M3000 / IMS #define USB_DEV_RSC_02 ( ( MBG_USB_CLASS_RSC << 8 ) | 0x02 ) // RSC used with M2000 @@ -311,6 +327,8 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_FDM180 ( ( MBG_USB_CLASS_FDM << 8 ) | 0x01 ) ///< FDM for IMS Systems #define USB_DEV_FDM180M ( ( MBG_USB_CLASS_FDM << 8 ) | 0x02 ) ///< FDM for old Lantime Systems (M300/M600/M900) #define USB_DEV_PMU190 ( ( MBG_USB_CLASS_FDM << 8 ) | 0x03 ) ///< Phasor Measurement Unit (IEEE C37.118), Phasor and Frequency Measurement +#define USB_DEV_FDM182 ( ( MBG_USB_CLASS_FDM << 8 ) | 0x04 ) ///< Variant of FDM180 with EP4CE15 FPGA +#define USB_DEV_FDM182M ( ( MBG_USB_CLASS_FDM << 8 ) | 0x05 ) ///< Variant of FDM180M with EP4CE15 FPGA #define USB_DEV_MDU300 ( ( MBG_USB_CLASS_MDU << 8 ) | 0x01 ) #define USB_DEV_MDU312 ( ( MBG_USB_CLASS_MDU << 8 ) | 0x02 ) @@ -336,6 +354,8 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_GNS190 ( ( MBG_USB_CLASS_GNS << 8 ) | 0x06 ) #define USB_DEV_GNS190_UC ( ( MBG_USB_CLASS_GNS << 8 ) | 0x07 ) #define USB_DEV_GNS191 ( ( MBG_USB_CLASS_GNS << 8 ) | 0x08 ) ///< Receiver Modul: Septentrio mosaic-T +#define USB_DEV_GNS182 ( ( MBG_USB_CLASS_GNS << 8 ) | 0x09 ) ///< FPGA 4CE15 +#define USB_DEV_GNS182_UC ( ( MBG_USB_CLASS_GNS << 8 ) | 0x0A ) ///< FPGA 4CE15 #define USB_DEV_N2X180 ( ( MBG_USB_CLASS_N2X << 8 ) | 0x01 ) @@ -349,6 +369,8 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_VMX180 ( ( MBG_USB_CLASS_VMX << 8 ) | 0x01 ) ///< Video Matrix +#define USB_DEV_PSX210 ( ( MBG_USB_CLASS_PSX << 8 ) | 0x01 ) ///< PSX210 + // If new devices are defined here, appropriate definitions should also // be added to MBG_USB_DEVICE_NAMES and DEFAULT_MBG_USB_DEVICE_NAMES. @@ -396,9 +418,11 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_NAME_FCU200 "FCU200" #define USB_DEV_NAME_CPE_01 "CPE_01" +#define USB_DEV_NAME_CPE182 "CPE182" #define USB_DEV_NAME_GPS180 "GPS180" #define USB_DEV_NAME_GPS190 "GPS190" +#define USB_DEV_NAME_GPS182 "GPS182" #define USB_DEV_NAME_LNO180 "LNO180" @@ -416,6 +440,7 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_NAME_BPE2352 "BPE2352" #define USB_DEV_NAME_BPE8XXX "BPE8XXX" #define USB_DEV_NAME_BPE6042 "BPE6042" +#define USB_DEV_NAME_BPE8NNN "BPE8NNN" #define USB_DEV_NAME_RSC_01 "RSC_01" #define USB_DEV_NAME_RSC_02 "RSC_02" @@ -434,6 +459,8 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_NAME_FDM180 "FDM180" #define USB_DEV_NAME_FDM180M "FDM180M" #define USB_DEV_NAME_PMU190 "PMU190" +#define USB_DEV_NAME_FDM182 "FDM182" +#define USB_DEV_NAME_FDM182M "FDM182M" #define USB_DEV_NAME_MDU300 "MDU300" #define USB_DEV_NAME_MDU312 "MDU312" @@ -458,6 +485,8 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_NAME_GNS190 "GNS190" #define USB_DEV_NAME_GNS190_UC "GNS190_UC" #define USB_DEV_NAME_GNS191 "GNS191" +#define USB_DEV_NAME_GNS182 "GNS182" +#define USB_DEV_NAME_GNS182_UC "GNS182_UC" #define USB_DEV_NAME_N2X180 "N2X180" @@ -471,6 +500,8 @@ enum MBG_USB_CLASS_CODES #define USB_DEV_NAME_VMX180 "VMX180" +#define USB_DEV_NAME_PSX210 "PSX210" + /** @} anchor MBG_USB_DEVICE_NAMES */ @@ -555,6 +586,14 @@ enum MBG_USB_CLASS_CODES { USB_DEV_GNS191, USB_DEV_NAME_GNS191 }, \ { USB_DEV_VSG181H, USB_DEV_NAME_VSG181H }, \ { USB_DEV_VMX180, USB_DEV_NAME_VMX180 }, \ + { USB_DEV_GPS182, USB_DEV_NAME_GPS182 }, \ + { USB_DEV_GNS182, USB_DEV_NAME_GNS182 }, \ + { USB_DEV_GNS182_UC, USB_DEV_NAME_GNS182_UC }, \ + { USB_DEV_PSX210, USB_DEV_NAME_PSX210 }, \ + { USB_DEV_CPE182, USB_DEV_NAME_CPE182 }, \ + { USB_DEV_FDM182, USB_DEV_NAME_FDM182 }, \ + { USB_DEV_FDM182M, USB_DEV_NAME_FDM182M }, \ + { USB_DEV_BPE8NNN, USB_DEV_NAME_BPE8NNN }, \ { 0, /* end of table */ NULL } \ } |