svn commit: r327516 - in head/sysutils/sbniconfig: . files
Max Khon
fjoe at FreeBSD.org
Wed Sep 18 06:21:11 UTC 2013
Author: fjoe
Date: Wed Sep 18 06:21:10 2013
New Revision: 327516
URL: http://svnweb.freebsd.org/changeset/ports/327516
Log:
Unbreak port build while master site is down.
Added:
head/sysutils/sbniconfig/files/sbniconfig.c (contents, props changed)
Deleted:
head/sysutils/sbniconfig/distinfo
Modified:
head/sysutils/sbniconfig/Makefile
Modified: head/sysutils/sbniconfig/Makefile
==============================================================================
--- head/sysutils/sbniconfig/Makefile Wed Sep 18 06:14:06 2013 (r327515)
+++ head/sysutils/sbniconfig/Makefile Wed Sep 18 06:21:10 2013 (r327516)
@@ -8,10 +8,7 @@
PORTNAME= sbniconfig
PORTVERSION= 1.0
CATEGORIES= sysutils
-MASTER_SITES= ftp://ftp.granch.ru/pub/drivers/sbni12/FREEBSD/sbniconfig/
-DISTNAME= sbniconfig.c
-EXTRACT_SUFX= .gz
-EXTRACT_ONLY=
+DISTFILES= # none
MAINTAINER= fjoe at FreeBSD.org
COMMENT= Configurator for Granch SBNI12-xx adapters
@@ -22,7 +19,6 @@ ONLY_FOR_ARCHS= i386
PLIST_FILES= bin/sbniconfig
post-extract:
- @${GZCAT} ${DISTDIR}/${DISTFILES} > ${WRKDIR}/sbniconfig.c
- @${CP} ${FILESDIR}/Makefile ${WRKDIR}
+ @${CP} ${FILESDIR}/Makefile ${FILESDIR}/sbniconfig.c ${WRKDIR}
.include <bsd.port.mk>
Added: head/sysutils/sbniconfig/files/sbniconfig.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/sysutils/sbniconfig/files/sbniconfig.c Wed Sep 18 06:21:10 2013 (r327516)
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 1997
+ * Granch ltd.
+ *
+ * Redistribution and use in source forms, with and without modification,
+ * are permitted provided that this entire comment appear intact.
+ *
+ * THIS SOURCE CODE IS PROVIDED ``AS IS'' WITHOUT ANY WARRANTIES OF ANY KIND.
+ *
+ * sbniconfig.c,v 2.0.0 97/08/06
+ */
+
+/*
+ * SBNI adapter configuration utility
+ *
+ * Revision 2.0.0 97/08/06
+ * Initial revision
+ *
+ * Revision 2.0.1 97/08/11
+ * Additional internal statistics support (tx statistics)
+ *
+ * Revisuion 2.1 Jul 7 2000
+ * Added feature to specify baud rate and rxl instead of flags
+ *
+ *
+ */
+
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <net/if.h>
+#include <netinet/in.h>
+#include <netinet/if_ether.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "if_sbnivar.h"
+
+char* rate_tab[] = {
+ "0",
+ "1",
+ "2",
+ "3"
+};
+
+int main(argc, argv)
+int argc;
+char *argv[];
+{
+ char *if_name;
+ int s;
+ struct ifreq ifr;
+ struct sbni_in_stats in_stats;
+
+ struct sbni_flags flags;
+
+ int rxl=-1,baud=-1;
+ int rxlfix=1<<6;
+
+
+ if(argc < 2 || argc > 4){
+ fprintf(stderr, "usage:\tsbniconfig if_name [flags]\n");
+ fprintf(stderr, "\tsbniconfig if_name baud rxl\n");
+ fprintf(stderr, "e.g.: \tsbniconfig sbni0 0xdeadbeef or \n\tsbniconfig sbni0 2 15\n\tsbniconfig sbni0 0 auto\n");
+
+ exit(1);
+ }
+ if_name = argv[1];
+ if(argc == 3 || argc == 4){
+ char* endptr;
+ if(argc == 3){
+ *(u_int32_t*)&flags = strtoul(argv[2], &endptr, 0);
+ if(*endptr){
+ fprintf(stderr,
+ "sbniconfig: invalid flags specified\n");
+ exit(1);
+ }
+
+ }else{
+ baud=atoi(argv[2]);
+ if(strcasecmp(argv[3],"auto")){
+ /* NON auto */
+ rxl=atoi(argv[3]);
+ rxlfix=1<<6;
+ }else{
+ rxl=0;
+ rxlfix=0;
+ }
+
+ if((baud < 0) || (baud > 3) || (rxl < 0) || (rxl > 15)){
+ printf("incorrect params.\n");
+ exit(1);
+ }
+
+ printf("baud rate = %d\n",baud);
+
+ if(!rxlfix)
+ printf("rxl = auto\n");
+ else{
+ printf("rxl = %d\n",rxl);
+ }
+
+ srandom(time(NULL));
+
+ *(u_int32_t*)&flags = random();
+ *((u_char*) &flags + 3) = rxl | rxlfix | (baud<<4) | (1<<7);
+ printf("new flags = 0x%x\n",flags);
+ }
+
+ flags.mac_addr = htonl(flags.mac_addr) >> 8;
+ }
+
+ s = socket(AF_INET, SOCK_DGRAM, 0);
+ if(s < 0){
+ perror("sbniconfig: socket");
+ exit (1);
+ }
+
+ strncpy(ifr.ifr_name, if_name, sizeof (ifr.ifr_name));
+ ifr.ifr_addr.sa_family = AF_INET;
+
+ if(argc == 2){
+ if(ioctl(s, SIOCGHWFLAGS, (caddr_t)&ifr) < 0){
+ perror("sbniconfig: SIOCGHWFLAGS");
+ exit(1);
+ }
+ flags = *(struct sbni_flags*)&ifr.ifr_data;
+
+ ifr.ifr_data = (caddr_t)&in_stats;
+ if(ioctl(s, SIOCGINSTATS, (caddr_t)&ifr) < 0){
+ perror("sbniconfig: SIOCGINSTATS");
+ exit(1);
+ }
+
+ printf("%s:\tMAC addr: 00:ff:01:%02x:%02x:%02x\n"
+ "\treceive level: 0x%x (%s)\n"
+ "\tbaud rate: %s (%s)\n"
+ "\tTotal rx=%u\tBad rx=%u\tGood rx=%u\tTimeouts=%u\n"
+ "\tError frame ratio %6.2f%%\n"
+ "\tTotal tx=%u\tResend tx=%u\tImmediate tx=%u\n",
+ if_name,
+ *(u_char*) &flags,
+ *(((u_char*) &flags)+1),
+ *(((u_char*) &flags)+2),
+ (unsigned) flags.rxl,
+ flags.fixed_rxl ? "fixed" : "autodetected",
+ rate_tab[flags.rate],
+ flags.fixed_rate ? "fixed" : "autodetected",
+ in_stats.all_rx_number,
+ in_stats.bad_rx_number,
+ in_stats.all_rx_number - in_stats.bad_rx_number,
+ in_stats.timeout_number,
+ (float)(in_stats.bad_rx_number*100./(in_stats.all_rx_number+0.01)),
+ in_stats.all_tx_number,
+ in_stats.resend_tx_number,
+ in_stats.all_tx_number - in_stats.resend_tx_number);
+ }
+ else if((argc == 3) || (argc ==4 )){
+ if(*(caddr_t*)&flags != 0){
+ ifr.ifr_data = *(caddr_t*)&flags;
+ if(ioctl(s, SIOCSHWFLAGS, (caddr_t)&ifr) < 0){
+ perror("sbniconfig: SIOCSHWFLAGS");
+ exit(1);
+ }
+ }
+ if(ioctl(s, SIOCRINSTATS, (caddr_t)&ifr) < 0){
+ perror("sbniconfig: SIOCRINSTATS");
+ exit(1);
+ }
+ }
+
+ close (s);
+ return 0;
+}
More information about the svn-ports-head
mailing list