|
|
1.1 root 1: /* $Header: /kernel/kersrc/io.386/RCS/msgstub.c,v 1.2 92/08/04 12:54:08 bin Exp Locker: bin $
2: *
3: * The information contained herein is a trade secret of INETCO
4: * Systems, and is confidential information. It is provided under
5: * a license agreement, and may be copied or disclosed only under
6: * the terms of that agreement. Any reproduction or disclosure of
7: * this material without the express written authorization of
8: * INETCO Systems or persuant to the license agreement is unlawful.
9: *
10: * Copyright (c) 1985
11: * An unpublished work by INETCO Sys/
12:
13: #include <sys/coherent.h>
14: #include <errno.h>
15: #include <sys/inode.h>
16: #include <sys/fdisk.h>
17: #include <sys/buf.h>
18: #include <sys/con.h>
19:
20: fdisk(dev, fp)
21: dev_t dev;
22: register struct fdisk_s *fp;
23: {
24: register struct hdisk_s *hp;
25: BUF *bp;
26: int s, i;
27: int ret = 0;
28:
29: s = sphi();
30: dopen(dev, IPR, DFBLK);
31:
32: if (u.u_error == 0) { /* special device now open */
33:
34: if (bp = bread(dev, (daddr_t) 0, 1)) { /* data read */
35:
36: /* buffer cache is in kernel data space */
37: #ifdef _I386
38: hp = bp->b_vaddr;
39: #else
40: hp = FP_OFF(bp->b_faddr);
41: #endif
42:
43: if(hp->hd_sig==HDSIG) {
44: for (i=0; i < NPARTN; ++i)
45: *fp++ = hp->hd_partn[i];
46: ret = 1;
47: }
48: brelease(bp);
49: }
50: dclose(dev);
51: }
52: spl(s);
53: return ret;
54: }
55: