diff options
author | phk <phk@FreeBSD.org> | 1995-08-24 09:03:04 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1995-08-24 09:03:04 +0000 |
commit | 6525e9352125ef84d8dc9be7527c97103bd99a46 (patch) | |
tree | 3500a990f00ee986fa4dedc4ee4179df82e89175 /usr.sbin/pccard/pccardc/wrattr.c | |
parent | cb797b9f3a51481777017af541d45fbb632918bd (diff) | |
download | FreeBSD-src-6525e9352125ef84d8dc9be7527c97103bd99a46.zip FreeBSD-src-6525e9352125ef84d8dc9be7527c97103bd99a46.tar.gz |
The userland part of Andrew McRae's PCMCIA/PCCARD code.
This is not quite finished yet, and therefore I have not added it to the
usr.sbin/Makefile yet.
I collected a bunch of Andrews small programs into one: pccardc /phk
Reviewed by: phk
Submitted by: Andrew McRae <andrew@mega.com.au>
Diffstat (limited to 'usr.sbin/pccard/pccardc/wrattr.c')
-rw-r--r-- | usr.sbin/pccard/pccardc/wrattr.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/usr.sbin/pccard/pccardc/wrattr.c b/usr.sbin/pccard/pccardc/wrattr.c new file mode 100644 index 0000000..d8e980f --- /dev/null +++ b/usr.sbin/pccard/pccardc/wrattr.c @@ -0,0 +1,46 @@ +#include <stdio.h> +#include <sys/types.h> +#include <sys/ioctl.h> + +#include <pccard/card.h> + +int +wrattr_main(argc, argv) +int argc; +char *argv[]; +{ +int reg,value; +char name[64], c; +int fd; +off_t offs; + + if (argc != 4) + { + fprintf(stderr, "usage: wrmem slot offs value\n"); + exit(1); + } + sprintf(name, "/dev/card%d", atoi(argv[1])); + fd = open(name, 2); + if (fd < 0) + { + perror(name); + exit(1); + } + reg = MDF_ATTR; + if (ioctl(fd, PIOCRWFLAG, ®)) + { + perror("ioctl (PIOCRWFLAG)"); + exit(1); + } + if (sscanf(argv[2], "%x", ®) != 1 || + sscanf(argv[3], "%x", &value) != 1) + { + fprintf(stderr, "arg error\n"); + exit(1); + } + offs = reg; + c = value; + lseek(fd, offs, SEEK_SET); + if (write(fd, &c, 1) != 1) + perror(name); +} |