diff options
Diffstat (limited to 'daemons/gptp/linux/shm_test')
-rw-r--r-- | daemons/gptp/linux/shm_test/.gitignore | 1 | ||||
-rw-r--r-- | daemons/gptp/linux/shm_test/Makefile | 53 | ||||
-rw-r--r-- | daemons/gptp/linux/shm_test/shm_test.cpp | 133 |
3 files changed, 0 insertions, 187 deletions
diff --git a/daemons/gptp/linux/shm_test/.gitignore b/daemons/gptp/linux/shm_test/.gitignore deleted file mode 100644 index f0acd3a8..00000000 --- a/daemons/gptp/linux/shm_test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -shm_test diff --git a/daemons/gptp/linux/shm_test/Makefile b/daemons/gptp/linux/shm_test/Makefile deleted file mode 100644 index 6bc87880..00000000 --- a/daemons/gptp/linux/shm_test/Makefile +++ /dev/null @@ -1,53 +0,0 @@ -# -# Copyright (c) 2015 Coveloz Consulting -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# 3. Neither the name of the Coveloz Consulting nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -COMMON_DIR := ../../common -LINUX_SRC_DIR := ../src -TARGET_NAME := shm_test - -CFLAGS_G = -Wall -g -Wnon-virtual-dtor -I. -I$(COMMON_DIR) -I$(LINUX_SRC_DIR) -LDFLAGS_G = -lpthread -lrt - -OBJ_FILES = -HEADER_FILES := $(COMMON_DIR)/ipcdef.hpp $(LINUX_SRC_DIR)/linux_ipc.hpp - -CFLAGS = $(CFLAGS_G) -LDFLAGS = $(LDFLAGS_G) - -all: $(TARGET_NAME) - -$(TARGET_NAME): shm_test.cpp - # Generating $@ - @ $(CXX) $(CFLAGS) $(CXXFLAGS) $(OBJ_FILES) shm_test.cpp -o $(TARGET_NAME) $(LDFLAGS) - -clean: - # Cleaning up - @ $(RM) *.o $(TARGET_NAME) - diff --git a/daemons/gptp/linux/shm_test/shm_test.cpp b/daemons/gptp/linux/shm_test/shm_test.cpp deleted file mode 100644 index dbe01c5b..00000000 --- a/daemons/gptp/linux/shm_test/shm_test.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/****************************************************************************** - - Copyright (c) 2015, Coveloz Consulting - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of the Coveloz Consulting nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -******************************************************************************/ - -#include <iostream> -#include <fstream> - -#include <stdio.h> -#include <stdint.h> -#include <sys/mman.h> -#include <sys/stat.h> /* For mode constants */ -#include <fcntl.h> /* For O_* constants */ -#include <errno.h> -#include <string.h> -#include <stdlib.h> -#include <pthread.h> - -#include "linux_ipc.hpp" - -static inline uint64_t getCpuFrequency(void) -{ - uint64_t freq = 0; - std::string line; - std::ifstream cpuinfo("/proc/cpuinfo"); - if (cpuinfo.is_open()) - { - while ( getline (cpuinfo,line) ) - { - if(line.find("MHz") != line.npos) - break; - } - cpuinfo.close(); - } - else std::cout << "Unable to open file"; - - size_t pos = line.find(":"); - if (pos != line.npos) { - std::string mhz_str = line.substr(pos+2, line.npos - pos); - double freq1 = strtod(mhz_str.c_str(), NULL); - freq = freq1 * 1000000ULL; - } - return freq; -} - -int main(int argc, char *argv[]) -{ - int shm_fd = shm_open(SHM_NAME, O_RDONLY, 0666); - - if( shm_fd < 0) { - fprintf(stderr, "shm_open(). %s\n", strerror(errno)); - return -1; - } - char *addr = (char*)mmap(NULL, SHM_SIZE, PROT_READ, MAP_SHARED, shm_fd, 0); - - if( addr == MAP_FAILED ) { - fprintf(stderr, "Error on mmap. Aborting.\n"); - return -1; - } - fprintf(stdout, "--------------------------------------------\n"); - int buf_offset = 0; - buf_offset += sizeof(pthread_mutex_t); - gPtpTimeData *ptpData = (gPtpTimeData*)(addr+buf_offset); - /*TODO: Scale to ns*/ - uint64_t freq = getCpuFrequency(); - printf("Frequency %lu Hz\n", freq); - - fprintf(stdout, "ml phoffset %ld\n", ptpData->ml_phoffset); - fprintf(stdout, "ml freq offset %Lf\n", ptpData->ml_freqoffset); - fprintf(stdout, "ls phoffset %ld\n", ptpData->ls_phoffset); - fprintf(stdout, "ls freq offset %Lf\n", ptpData->ls_freqoffset); - fprintf(stdout, "local time %llu\n\n", (unsigned long long) ptpData->local_time); - - fprintf(stdout, "gptp grandmaster id %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n", - (unsigned int) ptpData->gptp_grandmaster_id[0], (unsigned int) ptpData->gptp_grandmaster_id[1], - (unsigned int) ptpData->gptp_grandmaster_id[2], (unsigned int) ptpData->gptp_grandmaster_id[3], - (unsigned int) ptpData->gptp_grandmaster_id[4], (unsigned int) ptpData->gptp_grandmaster_id[5], - (unsigned int) ptpData->gptp_grandmaster_id[6], (unsigned int) ptpData->gptp_grandmaster_id[7]); - fprintf(stdout, "gptp domain number %u\n\n", (unsigned int) ptpData->gptp_domain_number); - - fprintf(stdout, "clock identity %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n", - (unsigned int) ptpData->clock_identity[0], (unsigned int) ptpData->clock_identity[1], - (unsigned int) ptpData->clock_identity[2], (unsigned int) ptpData->clock_identity[3], - (unsigned int) ptpData->clock_identity[4], (unsigned int) ptpData->clock_identity[5], - (unsigned int) ptpData->clock_identity[6], (unsigned int) ptpData->clock_identity[7]); - fprintf(stdout, "priority1 %u\n", (unsigned int) ptpData->priority1); - fprintf(stdout, "clock_class %u\n", (unsigned int) ptpData->clock_class); - fprintf(stdout, "offset_scaled_log_variance %d\n", (int) ptpData->offset_scaled_log_variance); - fprintf(stdout, "clock_accuracy %u\n", (unsigned int) ptpData->clock_accuracy); - fprintf(stdout, "priority2 %u\n", (unsigned int) ptpData->priority2); - fprintf(stdout, "domain_number %u\n", (unsigned int) ptpData->domain_number); - fprintf(stdout, "log_sync_interval %d\n", (int) ptpData->log_sync_interval); - fprintf(stdout, "log_announce_interval %d\n", (int) ptpData->log_announce_interval); - fprintf(stdout, "log_pdelay_interval %d\n", (int) ptpData->log_pdelay_interval); - fprintf(stdout, "port_number %u\n\n", (unsigned int) ptpData->port_number); - - fprintf(stdout, "sync count %u\n", ptpData->sync_count); - fprintf(stdout, "pdelay count %u\n", ptpData->pdelay_count); - fprintf(stdout, "asCapable %s\n", ptpData->asCapable ? "True" : "False"); - fprintf(stdout, "Port State %d\n", (int)ptpData->port_state); - fprintf(stdout, "process_id %d\n\n", (int)ptpData->process_id); - - return 0; -} - |