From 121dfd8f1b9e0ccbf5dfa7348ec764ccf1642ca7 Mon Sep 17 00:00:00 2001 From: mycroft Date: Sat, 10 Aug 1996 15:42:33 +0000 Subject: [PATCH] Change PCI_MAPREG_{MEM,IO}_SIZE() to use the standard `x & -x' trick to select the lowest bit set. This isn't any more or less valid according to the PCI spec, but it deals with lame devices that don't implement all of the top bits. --- sys/dev/pci/pcireg.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sys/dev/pci/pcireg.h b/sys/dev/pci/pcireg.h index 3f9d8fd0cfc5..0ff81cd8c1cc 100644 --- a/sys/dev/pci/pcireg.h +++ b/sys/dev/pci/pcireg.h @@ -1,4 +1,4 @@ -/* $NetBSD: pcireg.h,v 1.10 1996/08/06 02:11:25 cgd Exp $ */ +/* $NetBSD: pcireg.h,v 1.11 1996/08/10 15:42:33 mycroft Exp $ */ /* * Copyright (c) 1995, 1996 Christopher G. Demetriou. All rights reserved. @@ -222,16 +222,14 @@ typedef u_int8_t pci_revision_t; #define PCI_MAPREG_MEM_ADDR(mr) \ ((mr) & PCI_MAPREG_MEM_ADDR_MASK) #define PCI_MAPREG_MEM_SIZE(mr) \ - ((~PCI_MAPREG_MEM_ADDR(mr) & PCI_MAPREG_MEM_SIZE_MASK) + 1) + (PCI_MAPREG_MEM_ADDR(mr) & -PCI_MAPREG_MEM_ADDR(mr)) #define PCI_MAPREG_MEM_ADDR_MASK 0xfffffff0 -#define PCI_MAPREG_MEM_SIZE_MASK 0xffffffff #define PCI_MAPREG_IO_ADDR(mr) \ ((mr) & PCI_MAPREG_IO_ADDR_MASK) #define PCI_MAPREG_IO_SIZE(mr) \ - ((~PCI_MAPREG_IO_ADDR(mr) & PCI_MAPREG_IO_SIZE_MASK) + 1) + (PCI_MAPREG_IO_ADDR(mr) & -PCI_MAPREG_IO_ADDR(mr)) #define PCI_MAPREG_IO_ADDR_MASK 0xfffffffe -#define PCI_MAPREG_IO_SIZE_MASK 0xffffffff /* * Interrupt Configuration Register; contains interrupt pin and line.