Files
autobuild-tools/code/test/read_shm.c
Zhang, Guodong e0b7a7e83d 整理代码库,删除无用分支以及代码
重命名:   trunk/src/README -> ../README
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/Makefile
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/Makefile.config
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/const.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/dotconf.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/mnic.c
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/mnic.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/nicinfo_shm.c
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/nicinfo_shm.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/proc_inv.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/read_netcard.c
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/send_alarm.c
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/sys_netcard.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/sys_nicmonitor
	删除:     ../branches/sys_nicmonitor-1.5/Makefile
	删除:     ../branches/sys_nicmonitor-1.5/Makefile.config
	删除:     ../branches/sys_nicmonitor-1.5/README1.5
	删除:     ../branches/sys_nicmonitor-1.5/const.h
	删除:     ../branches/sys_nicmonitor-1.5/mnic.c
	删除:     ../branches/sys_nicmonitor-1.5/mnic.h
	删除:     ../branches/sys_nicmonitor-1.5/nicinfo_shm.c
	删除:     ../branches/sys_nicmonitor-1.5/nicinfo_shm.h
	删除:     ../branches/sys_nicmonitor-1.5/proc_inv.h
	删除:     ../branches/sys_nicmonitor-1.5/read_netcard.c
	删除:     ../branches/sys_nicmonitor-1.5/send_alarm.c
	删除:     ../branches/sys_nicmonitor-1.5/sys_netcard.h
	删除:     ../branches/sys_nicmonitor-1.5/sys_nicmonitor
	删除:     ../branches/sys_nicmonitor-1.6/Makefile
	删除:     ../branches/sys_nicmonitor-1.6/Makefile.config
	删除:     ../branches/sys_nicmonitor-1.6/README1.5
	删除:     ../branches/sys_nicmonitor-1.6/README1.6
	删除:     ../branches/sys_nicmonitor-1.6/const.h
	删除:     ../branches/sys_nicmonitor-1.6/mnic.c
	删除:     ../branches/sys_nicmonitor-1.6/mnic.h
	删除:     ../branches/sys_nicmonitor-1.6/nicinfo_shm.c
	删除:     ../branches/sys_nicmonitor-1.6/nicinfo_shm.h
	删除:     ../branches/sys_nicmonitor-1.6/proc_inv.h
	删除:     ../branches/sys_nicmonitor-1.6/read_netcard.c
	删除:     ../branches/sys_nicmonitor-1.6/send_alarm.c
	删除:     ../branches/sys_nicmonitor-1.6/sys_netcard.h
	删除:     ../branches/sys_nicmonitor-1.6/sys_nicmonitor
	重命名:   trunk/sys_nicmonitor/src/Pkgfile -> Pkgfile
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/README -> README
	删除:     branches/sys_nicmonitor-1.0/Makefile
	删除:     branches/sys_nicmonitor-1.0/Makefile.config
	删除:     branches/sys_nicmonitor-1.0/const.h
	删除:     branches/sys_nicmonitor-1.0/mnic.c
	删除:     branches/sys_nicmonitor-1.0/mnic.h
	删除:     branches/sys_nicmonitor-1.0/nicinfo_shm.c
	删除:     branches/sys_nicmonitor-1.0/nicinfo_shm.h
	删除:     branches/sys_nicmonitor-1.0/proc_inv.h
	删除:     branches/sys_nicmonitor-1.0/read_netcard.c
	删除:     branches/sys_nicmonitor-1.0/send_alarm.c
	删除:     branches/sys_nicmonitor-1.0/sys_netcard.h
	重命名:   trunk/sys_nicmonitor/src/build.sh -> build.sh
	重命名:   trunk/sys_nicmonitor/src/dep/dotconf#1.0.13-1.pkg.tar.gz -> dep/dotconf#1.0.13-1.pkg.tar.gz
	重命名:   trunk/sys_nicmonitor/src/dep/libman.so -> dep/libman.so
	重命名:   trunk/sys_nicmonitor/src/dep/run.sh -> dep/run.sh
	重命名:   trunk/sys_nicmonitor/src/post_add.sh -> post_add.sh
	重命名:   trunk/sys_nicmonitor/src/post_mk.sh -> post_mk.sh
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/Makefile -> sys_nicmonitor/Makefile
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/Makefile.config -> sys_nicmonitor/Makefile.config
	重命名:   trunk/sys_nicmonitor/src/README -> sys_nicmonitor/README
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/common.c -> sys_nicmonitor/common.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/const.h -> sys_nicmonitor/const.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/mnic.c -> sys_nicmonitor/mnic.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/mnic.h -> sys_nicmonitor/mnic.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/nicinfo_shm.c -> sys_nicmonitor/nicinfo_shm.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/nicinfo_shm.h -> sys_nicmonitor/nicinfo_shm.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/proc_inv.h -> sys_nicmonitor/proc_inv.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/read_netcard.c -> sys_nicmonitor/read_netcard.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/send_alarm.c -> sys_nicmonitor/send_alarm.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/sys_netcard.h -> sys_nicmonitor/sys_netcard.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/test.c -> sys_nicmonitor/test.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/testread.c -> sys_nicmonitor/testread.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/version.h -> sys_nicmonitor/version.h
	删除:     tags/README1.5
	删除:     tags/README1.6
	删除:     tags/README1.7
	删除:     tags/libman.so
	删除:     tags/sys_nicmonitor-1.0.0/Makefile
	删除:     tags/sys_nicmonitor-1.0.0/Makefile.config
	删除:     tags/sys_nicmonitor-1.0.0/const.h
	删除:     tags/sys_nicmonitor-1.0.0/mnic.c
	删除:     tags/sys_nicmonitor-1.0.0/mnic.h
	删除:     tags/sys_nicmonitor-1.0.0/nicinfo_shm.c
	删除:     tags/sys_nicmonitor-1.0.0/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.0.0/proc_inv.h
	删除:     tags/sys_nicmonitor-1.0.0/read_netcard.c
	删除:     tags/sys_nicmonitor-1.0.0/send_alarm.c
	删除:     tags/sys_nicmonitor-1.0.0/sys_netcard.h
	删除:     tags/sys_nicmonitor-1.5/Makefile
	删除:     tags/sys_nicmonitor-1.5/Makefile.config
	删除:     tags/sys_nicmonitor-1.5/const.h
	删除:     tags/sys_nicmonitor-1.5/mnic.c
	删除:     tags/sys_nicmonitor-1.5/mnic.h
	删除:     tags/sys_nicmonitor-1.5/nicinfo_shm.c
	删除:     tags/sys_nicmonitor-1.5/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.5/proc_inv.h
	删除:     tags/sys_nicmonitor-1.5/read_netcard.c
	删除:     tags/sys_nicmonitor-1.5/send_alarm.c
	删除:     tags/sys_nicmonitor-1.5/sys_netcard.h
	删除:     tags/sys_nicmonitor-1.6/Makefile
	删除:     tags/sys_nicmonitor-1.6/Makefile.config
	删除:     tags/sys_nicmonitor-1.6/const.h
	删除:     tags/sys_nicmonitor-1.6/mnic.c
	删除:     tags/sys_nicmonitor-1.6/mnic.h
	删除:     tags/sys_nicmonitor-1.6/nicinfo_shm.c
	删除:     tags/sys_nicmonitor-1.6/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.6/proc_inv.h
	删除:     tags/sys_nicmonitor-1.6/read_netcard.c
	删除:     tags/sys_nicmonitor-1.6/send_alarm.c
	删除:     tags/sys_nicmonitor-1.6/sys_netcard.h
	删除:     tags/sys_nicmonitor-1.7/Makefile
	删除:     tags/sys_nicmonitor-1.7/Makefile.config
	删除:     tags/sys_nicmonitor-1.7/const.h
	删除:     tags/sys_nicmonitor-1.7/mnic.c
	删除:     tags/sys_nicmonitor-1.7/mnic.h
	删除:     tags/sys_nicmonitor-1.7/nicinfo_shm.c
	删除:     tags/sys_nicmonitor-1.7/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.7/proc_inv.h
	删除:     tags/sys_nicmonitor-1.7/read_netcard.c
	删除:     tags/sys_nicmonitor-1.7/send_alarm.c
	删除:     tags/sys_nicmonitor-1.7/sys_netcard.h
	删除:     tags/sys_nicmonitor-1.8/bin/README
	删除:     tags/sys_nicmonitor-1.8/bin/install.sh
	删除:     tags/sys_nicmonitor-1.8/bin/sys_nicmonitor#1.8-x86_64-Linx-Rocky4.2.pkg.tar.gz
	删除:     tags/sys_nicmonitor-1.8/doc/网卡监视程序动态库使用手册【新】.doc
	删除:     tags/sys_nicmonitor-1.8/doc/网卡监视程序安装说明以及使用手册【新】.doc
	删除:     tags/sys_nicmonitor-1.8/src/Pkgfile
	删除:     tags/sys_nicmonitor-1.8/src/README1.8
	删除:     tags/sys_nicmonitor-1.8/src/V1.8
	删除:     tags/sys_nicmonitor-1.8/src/build.sh
	删除:     tags/sys_nicmonitor-1.8/src/post_add.sh
	删除:     tags/sys_nicmonitor-1.8/src/post_mk.sh
	删除:     tags/sys_nicmonitor-1.8/src/sys_nicmonitor-1.8.tar.gz
	删除:     tags/sys_nicmonitor-1.8/test/Makefile
	删除:     tags/sys_nicmonitor-1.8/test/dotconf.h
	删除:     tags/sys_nicmonitor-1.8/test/getmem
	删除:     tags/sys_nicmonitor-1.8/test/getmem.c
	删除:     tags/sys_nicmonitor-1.8/test/mnic.h
	删除:     tags/sys_nicmonitor-1.8/test/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.8/test/read_shm
	删除:     tags/sys_nicmonitor-1.8/test/read_shm.c
	删除:     tags/sys_nicmonitor-1.8/test/recv_msg
	删除:     tags/sys_nicmonitor-1.8/test/recv_msg.c
	删除:     tags/sys_nicmonitor-1.8/test/sys_netcard.h
	重命名:   trunk/test/Makefile -> test/Makefile
	重命名:   trunk/test/dotconf.h -> test/dotconf.h
	重命名:   trunk/test/getmem.c -> test/getmem.c
	重命名:   trunk/test/mnic.h -> test/mnic.h
	重命名:   trunk/test/nicinfo_shm.h -> test/nicinfo_shm.h
	重命名:   trunk/test/read_shm.c -> test/read_shm.c
	重命名:   trunk/test/recv_msg.c -> test/recv_msg.c
	重命名:   trunk/test/sys_netcard.h -> test/sys_netcard.h
	删除:     trunk/LATEST
	删除:     trunk/README
	删除:     trunk/bin/README
	删除:     trunk/bin/install.sh
	删除:     trunk/bin/sys_nicmonitor#1.8.1-x86_64-Linx-Rocky4.2.pkg.tar.gz
	删除:     trunk/doc/网卡监视程序动态库使用手册【新】.doc
	删除:     trunk/doc/网卡监视程序安装说明以及使用手册【新】.doc
	删除:     trunk/src/Pkgfile
	删除:     trunk/src/build.sh
	删除:     trunk/src/post_add.sh
	删除:     trunk/src/post_mk.sh
	删除:     trunk/src/sys_nicmonitor-1.8.tar.gz
	删除:     trunk/src/sys_nicmonitor-1.9.tar.gz
	删除:     trunk/sys_nicmonitor/README.md
	删除:     trunk/sys_nicmonitor/sys_nicmonitor-from-svn.tar.bz2

Signed-off-by: Zhang, Guodong <gdzhang@linx-info.com>
2016-09-19 14:24:03 +08:00

128 lines
3.7 KiB
C

#include "mnic.h"
typedef struct net_info{
NETCARD_INFO info[MAXNICNUM];
}SHM;
void get_sem(int semid)
{
struct sembuf lock;
lock.sem_num = 0;
lock.sem_op = -1;
lock.sem_flg = SEM_UNDO;
while(semop(semid, &lock, 1)){
if (errno == EINTR) {
continue;
}
perror("semop()");
}
}
void release_sem(int semid)
{
int ret;
struct sembuf unlock;
unlock.sem_num = 0;
unlock.sem_op = 1;
unlock.sem_flg = SEM_UNDO;
if((ret = semop(semid, &unlock, 1)) == -1){
perror("semop()");
}
}
int main(void)
{
int fd = -1;
int i;
int semid;
key_t key;
SHM *p;
struct timespec s_time, os_time;
char shm_path[1024];
char sem_path[1024];
memset(shm_path, 0, sizeof(shm_path));
memset(sem_path, 0, sizeof(sem_path));
strcpy(shm_path, "/tmp/sys_netcard_shm_path");
strcpy(sem_path, "/tmp/sys_netcard_sem_path");
s_time.tv_sec = 1;
s_time.tv_nsec = 0;
if ((key=ftok(sem_path, SEM_PROJ_ID)) == -1) {
perror("ftok()");
exit(1);
}
if((semid = semget(key, 1, IPC_CREAT)) == -1){
fprintf(stderr, "Create semaphore error\n");
exit(1);
}
if((fd = open(shm_path, O_RDWR)) == -1){
fprintf(stderr, "open():%s\n", strerror(errno));
return -1;
}
p = mmap(NULL, sizeof(SHM), PROT_READ, MAP_SHARED, fd, 0);
if(p == MAP_FAILED){
perror("mmap");
return -1;
}
perror("mmap");
while(1){
get_sem(semid);
for(i = 0; p->info[i].charname[0] != 0; i++){
fprintf(stdout, "==========================网卡信息 [%d]==============================\n", (i + 1));
fprintf(stdout,"KEYID = %ld\nBONDING:%s\nDEVICE NAME : %s\nIPADDR : %d.%d.%d.%d\nBROADCAST : %d.%d.%d.%d\nNETMASK : %d.%d.%d.%d\nHWADDR : %02x:%02x:%02x:%02x:%02x:%02x\nFLAGS = %d\nMTU = %d\nTx_queue_len = %d\nTime_stamp = %d\n\nReceive bytes:%llu\nReceive packets:%llu\nReceive errors:%lu\nReceive dropped:%lu\nReceive multicast:%lu\nReceive fifo:%lu\n\nTransmit bytes:%llu\nTransmit packets:%llu\nTransmit errors:%lu\nTransmit dropped:%lu\nTransmit fifo:%lu\nTransmit collisions:%lu\nTransmit carrier:%lu\nAverage flow : %lld\n",
p->info[i].ID,
p->info[i].descr,
p->info[i].charname,
(unsigned char)p->info[i].addr.sa_data[2],
(unsigned char)p->info[i].addr.sa_data[3],
(unsigned char)p->info[i].addr.sa_data[4],
(unsigned char)p->info[i].addr.sa_data[5],
(unsigned char)p->info[i].broadaddr.sa_data[2],
(unsigned char)p->info[i].broadaddr.sa_data[3],
(unsigned char)p->info[i].broadaddr.sa_data[4],
(unsigned char)p->info[i].broadaddr.sa_data[5],
(unsigned char)p->info[i].netmask.sa_data[2],
(unsigned char)p->info[i].netmask.sa_data[3],
(unsigned char)p->info[i].netmask.sa_data[4],
(unsigned char)p->info[i].netmask.sa_data[5],
(unsigned char)p->info[i].hwaddr.sa_data[0],
(unsigned char)p->info[i].hwaddr.sa_data[1],
(unsigned char)p->info[i].hwaddr.sa_data[2],
(unsigned char)p->info[i].hwaddr.sa_data[3],
(unsigned char)p->info[i].hwaddr.sa_data[4],
(unsigned char)p->info[i].hwaddr.sa_data[5],
p->info[i].flags,
p->info[i].mtu,
p->info[i].tx_queue_len,
p->info[i].time_stamp,
p->info[i].rx_bytes,
p->info[i].rx_packets,
p->info[i].rx_errors,
p->info[i].rx_dropped,
p->info[i].rx_multicast,
p->info[i].rx_fifo_errors,
p->info[i].tx_bytes,
p->info[i].tx_packets,
p->info[i].tx_errors,
p->info[i].tx_dropped,
p->info[i].tx_fifo_errors,
p->info[i].collisions,
p->info[i].tx_carrier_errors,
p->info[i].average_flow);
}
nanosleep(&s_time, &os_time);
release_sem(semid);
}
close(fd);
return 0;
}