install correct aliases file
[unix-history] / usr / src / old / np100 / npdump.c
CommitLineData
ed0d8cc8 1/*
4f51e749
KS
2 * Copyright (c) 1986 MICOM-Interlan, Inc., Boxborough Mass.
3 * All rights reserved. The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
ed0d8cc8
KS
5 *
6 */
7#ifndef lint
8char copyright[] =
4f51e749 9"@(#) Copyright (c) 1986 MICOM-Interlan, Inc., Boxborough Mass.\n\
ed0d8cc8
KS
10 All rights reserved.\n";
11#endif not lint
12
13#ifndef lint
4f51e749 14static char sccsid[] = "@(#)npdump.c 6.2 (Berkeley) %G%";
ed0d8cc8
KS
15#endif not lint
16
17#include <stdio.h>
18#include <sys/file.h>
19#include "npcmd.h"
20#include <sys/ioctl.h>
21
22extern int errno;
23
24#define IMAGESIZE (1024 * 256)
25
26main(argc,argv)
27int argc;
28char **argv;
29{
30
31 int totalread; /* Total byte count of device reads */
32 int ed; /* Device's file descriptor */
33 int fd; /* Dumpfile device descriptor */
34 int nread; /* Value returned from read() call */
35 int nwritten; /* Value returned from write() call */
36 char *fname;
37 char ibuf[1024];
38 char *devname = "/dev/np00";
39
40
41 switch (argc) {
42 case 3:
43 /* Pathname for device to be dumped */
44 devname = argv[2];
45 case 2:
46 /* Name of the dump file */
47 fname = argv[1];
48 break;
49 default:
50 printf("usage: npdump dumpfile [device]\n");
51 exit(1);
52 }
53
54 /* Open the device to be dumped */
55
56 if ((ed = open(devname, O_RDWR)) == -1) {
57 char fullpath[50];
58 (void) sprintf(fullpath, "/dev/%s", devname);
59 if ((ed = open(devname,O_RDWR)) == -1) {
60 fprintf(stderr,
61 "%s unable to open device %s errno = %d\n",
62 argv[0], devname, errno);
63 exit(2);
64 }
65 }
66
67 /* Open/create the dump file */
68
69 if ((fd = open(fname, O_RDWR | O_CREAT)) == -1) {
70 fprintf(stderr,"%s: unable to open file %s errno = %d\n",
71 argv[0], fname, errno);
72 exit(2);
73 }
74
75
76 /* Read from the device and write to the dump file */
77
78 totalread = 0;
79
80 while (totalread < IMAGESIZE) {
81
82 if ((nread = read(ed,ibuf,1024)) > 0) {
83
84 totalread += nread;
85
86 nwritten = write(fd,ibuf,nread);
87
88 if (nwritten != nread) {
89 fprintf(stderr,"Bad write to %s errno = %d\n",
90 argv[2],errno);
91 exit(7);
92 }
93 }
94
95 else {
96 fprintf(stderr,"Bad read from %s errno = %d\n", argv[0],errno);
97 exit(7);
98
99 }
100 }
101
102 close(fd);
103 close(ed);
104
105 exit(0);
106}