view libdha/sysdep/pci_freebsd.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 1faf2566907b
children 806cd20f1c8f
line wrap: on
line source

/*
   This file is based on:
   $XFree86: xc/programs/Xserver/hw/xfree86/etc/scanpci.c,v 3.34.2.17 1998/11/10 11:55:40 dawes Exp $
   Modified for readability by Nick Kurshev
*/
#include <errno.h>
#include <sys/file.h>
/* machine/console.h seems to be outdated by recent FreeBSD *
 * however pcvt_ioctl.h seems to exist for very long time   */
/* #include <machine/console.h>*/
#include <machine/pcvt_ioctl.h>
#ifndef GCCUSESGAS
#define GCCUSESGAS
#endif

static int io_fd;

static __inline__ int enable_os_io(void)
{
    io_fd = -1 ;
    if ((io_fd = open("/dev/console", O_RDWR, 0)) < 0) {
        perror("/dev/console");
	return(errno);
    }
    if (ioctl(io_fd, KDENABIO, 0) < 0) {
        perror("ioctl(KDENABIO)");
        return(errno);
    }
    return(0);
}

static __inline__ int disable_os_io(void)
{
    if (ioctl(io_fd, KDDISABIO, 0) < 0) {
        perror("ioctl(KDDISABIO)");
	close(io_fd);
        return(errno);
    }
    close(io_fd);
    return(0);
}