12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /*
- * devops.c: Device operations using the PROM.
- *
- * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
- * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
- */
- #include <linux/types.h>
- #include <linux/kernel.h>
- #include <linux/sched.h>
- #include <asm/openprom.h>
- #include <asm/oplib.h>
- /* Open the device described by the string 'dstr'. Returns the handle
- * to that device used for subsequent operations on that device.
- * Returns 0 on failure.
- */
- int
- prom_devopen(const char *dstr)
- {
- unsigned long args[5];
- args[0] = (unsigned long) "open";
- args[1] = 1;
- args[2] = 1;
- args[3] = (unsigned long) dstr;
- args[4] = (unsigned long) -1;
- p1275_cmd_direct(args);
- return (int) args[4];
- }
- /* Close the device described by device handle 'dhandle'. */
- int
- prom_devclose(int dhandle)
- {
- unsigned long args[4];
- args[0] = (unsigned long) "close";
- args[1] = 1;
- args[2] = 0;
- args[3] = (unsigned int) dhandle;
- p1275_cmd_direct(args);
- return 0;
- }
- /* Seek to specified location described by 'seekhi' and 'seeklo'
- * for device 'dhandle'.
- */
- void
- prom_seek(int dhandle, unsigned int seekhi, unsigned int seeklo)
- {
- unsigned long args[7];
- args[0] = (unsigned long) "seek";
- args[1] = 3;
- args[2] = 1;
- args[3] = (unsigned int) dhandle;
- args[4] = seekhi;
- args[5] = seeklo;
- args[6] = (unsigned long) -1;
- p1275_cmd_direct(args);
- }
|