1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-26 14:42:36 +02:00

Support Debian/kFreeBSD

Corresponding to flashrom svn r1507.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Tested-by: Robert Millan <rmh@debian.org>
Tested-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
This commit is contained in:
Carl-Daniel Hailfinger 2012-02-25 22:50:21 +00:00
parent 2d2512453b
commit a5eecdab44
4 changed files with 14 additions and 7 deletions

View File

@ -40,7 +40,7 @@ static inline void sync_primitive(void)
{
}
#if defined(__FreeBSD__) || defined(__DragonFly__)
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
int io_fd;
#endif
@ -52,7 +52,7 @@ void get_io_perms(void)
#else
#if defined (__sun) && (defined(__i386) || defined(__amd64))
if (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) != 0) {
#elif defined(__FreeBSD__) || defined (__DragonFly__)
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined (__DragonFly__)
if ((io_fd = open("/dev/io", O_RDWR)) < 0) {
#else
if (iopl(3) != 0) {
@ -71,7 +71,7 @@ void get_io_perms(void)
void release_io_perms(void)
{
#if defined(__FreeBSD__) || defined(__DragonFly__)
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
close(io_fd);
#endif
}

View File

@ -189,6 +189,10 @@ cpu_to_be(64)
*/
#if defined(__FreeBSD__) || defined(__DragonFly__)
/* Note that Debian/kFreeBSD (FreeBSD kernel with glibc) has conflicting
* out[bwl] definitions in machine/cpufunc.h and sys/io.h at least in some
* versions. Use machine/cpufunc.h only for plain FreeBSD/DragonFlyBSD.
*/
#include <machine/cpufunc.h>
#define off64_t off_t
#define lseek64 lseek
@ -228,7 +232,7 @@ cpu_to_be(64)
#define INL inportl
#else
/* This is the usual glibc interface. */
#define OUTB outb
#define OUTW outw
#define OUTL outl
@ -299,12 +303,12 @@ static inline uint32_t inl(uint16_t port)
#endif
#endif
#if !defined(__DARWIN__) && !defined(__FreeBSD__) && !defined(__DragonFly__) && !defined(__LIBPAYLOAD__)
#if !defined(__DARWIN__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__DragonFly__) && !defined(__LIBPAYLOAD__)
typedef struct { uint32_t hi, lo; } msr_t;
msr_t rdmsr(int addr);
int wrmsr(int addr, msr_t msr);
#endif
#if defined(__FreeBSD__) || defined(__DragonFly__)
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
/* FreeBSD already has conflicting definitions for wrmsr/rdmsr. */
#undef rdmsr
#undef wrmsr

3
os.h
View File

@ -30,6 +30,9 @@
// FreeBSD
#elif defined(__FreeBSD__)
#define __FLASHROM_OS__ "FreeBSD"
// FreeBSD with glibc-based userspace (e.g. Debian/kFreeBSD)
#elif defined(__FreeBSD_kernel__) && defined(__GLIBC__)
#define __FLASHROM_OS__ "FreeBSD-glibc"
// DragonFlyBSD
#elif defined(__DragonFly__)
#define __FLASHROM_OS__ "DragonFlyBSD"

View File

@ -382,7 +382,7 @@ void cleanup_cpu_msr(void)
fd_msr = -1;
}
#else
#if defined(__FreeBSD__) || defined(__DragonFly__)
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
#include <sys/ioctl.h>
typedef struct {