annotate libdha/sysdep/pci_netbsd.c @ 10409:4c9ca4819bed

Commands are read in a loop, but for some commands we need to break the loop to finish processing the command. Otherwise some commands may appears as skiped to the user.
author albeu
date Fri, 11 Jul 2003 07:54:52 +0000
parents 4cfb6b9a6da3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4164
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
1 /*
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
2 This file is based on:
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
3 $XFree86: xc/programs/Xserver/hw/xfree86/etc/scanpci.c,v 3.34.2.17 1998/11/10 11:55:40 dawes Exp $
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
4 Modified for readability by Nick Kurshev
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
5 */
4174
4cfb6b9a6da3 api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents: 4164
diff changeset
6 #include <errno.h>
4164
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
7 #include <sys/param.h>
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
8 #include <sys/file.h>
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
9 #include <machine/sysarch.h>
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
10 #ifndef GCCUSESGAS
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
11 #define GCCUSESGAS
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
12 #endif
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
13
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
14 static int io_fd;
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
15
4174
4cfb6b9a6da3 api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents: 4164
diff changeset
16 static __inline__ int enable_os_io(void)
4164
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
17 {
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
18 io_fd = -1 ;
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
19 #if !defined(USE_I386_IOPL)
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
20 if ((io_fd = open("/dev/io", O_RDWR, 0)) < 0) {
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
21 perror("/dev/io");
4174
4cfb6b9a6da3 api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents: 4164
diff changeset
22 return(errno);
4164
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
23 }
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
24 #else
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
25 if (i386_iopl(1) < 0) {
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
26 perror("i386_iopl");
4174
4cfb6b9a6da3 api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents: 4164
diff changeset
27 return(errno);
4164
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
28 }
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
29 #endif /* USE_I386_IOPL */
4174
4cfb6b9a6da3 api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents: 4164
diff changeset
30 return(0);
4164
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
31 }
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
32
4174
4cfb6b9a6da3 api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents: 4164
diff changeset
33 static __inline__ int disable_os_io(void)
4164
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
34 {
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
35 #if !defined(USE_I386_IOPL)
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
36 close(io_fd);
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
37 #else
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
38 if (i386_iopl(0) < 0) {
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
39 perror("i386_iopl");
4174
4cfb6b9a6da3 api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents: 4164
diff changeset
40 return(errno);
4164
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
41 }
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
42 #endif /* NetBSD1_1 */
4174
4cfb6b9a6da3 api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents: 4164
diff changeset
43 return(0);
4164
2e3262002acb Improved readability and new stuffs
nick
parents:
diff changeset
44 }