socsvn commit: r257358 - soc2013/zcore/head/usr.sbin/bhyve
zcore at FreeBSD.org
zcore at FreeBSD.org
Sun Sep 15 09:48:15 UTC 2013
Author: zcore
Date: Sun Sep 15 09:48:15 2013
New Revision: 257358
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=257358
Log:
adopt endian functions from <sys/endian.h>
Modified:
soc2013/zcore/head/usr.sbin/bhyve/pci_ahci.c
Modified: soc2013/zcore/head/usr.sbin/bhyve/pci_ahci.c
==============================================================================
--- soc2013/zcore/head/usr.sbin/bhyve/pci_ahci.c Sun Sep 15 07:48:42 2013 (r257357)
+++ soc2013/zcore/head/usr.sbin/bhyve/pci_ahci.c Sun Sep 15 09:48:15 2013 (r257358)
@@ -36,6 +36,7 @@
#include <sys/ioctl.h>
#include <sys/disk.h>
#include <sys/ata.h>
+#include <sys/endian.h>
#include <errno.h>
#include <fcntl.h>
@@ -163,30 +164,6 @@
};
#define ahci_ctx(sc) ((sc)->asc_pi->pi_vmctx)
-static inline uint32_t cpu_to_be32(uint32_t val)
-{
- return ((val & 0xff) << 24) |
- ((val & 0xff00) << 8) |
- ((val & 0xff0000) >> 8) |
- ((val & 0xff000000) >> 24);
-}
-
-static inline uint32_t cpu_to_be16(uint16_t val)
-{
- return ((val & 0xff) << 8) |
- ((val & 0xff00) >> 8);
-}
-
-static inline uint16_t be16_to_cpu(uint8_t *val)
-{
- return (val[0] << 8) | val[1];
-}
-
-static inline uint16_t be32_to_cpu(uint8_t *val)
-{
- return (val[0] << 24) | (val[1] << 16) | (val[2] << 8) | val[3];
-}
-
static inline void lba_to_msf(uint8_t *buf, int lba)
{
lba += 150;
@@ -639,12 +616,11 @@
{
uint8_t buf[8];
uint64_t sectors;
- uint32_t *ptr = (uint32_t *)buf;
sectors = blockif_size(p->bctx) / blockif_sectsz(p->bctx);
sectors >>= 2;
- ptr[0] = cpu_to_be32(sectors - 1);
- ptr[1] = cpu_to_be32(2048);
+ be32enc(buf, sectors - 1);
+ be32enc(buf + 4, 2048);
cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN;
write_prdt(p, slot, cfis, buf, sizeof(buf));
ahci_write_fis_d2h(p, slot, cfis, ATA_S_READY | ATA_S_DSC);
@@ -656,7 +632,7 @@
int len;
uint8_t format, *acmd = cfis + 0x40;
- len = be16_to_cpu(acmd + 7);
+ len = be16dec(acmd + 7);
format = acmd[9] >> 6;
switch (format) {
case 0:
@@ -706,11 +682,11 @@
lba_to_msf(bp, sectors);
bp += 3;
} else {
- *(uint32_t *)bp = cpu_to_be32(sectors);
+ be32enc(bp, sectors);
bp += 4;
}
size = bp - buf;
- *(uint16_t*)buf = cpu_to_be16(size - 2);
+ be16enc(buf, size - 2);
if (len > size)
len = size;
write_prdt(p, slot, cfis, buf, len);
@@ -783,7 +759,7 @@
lba_to_msf(bp, sectors);
bp += 3;
} else {
- *(uint32_t *)bp = cpu_to_be32(sectors);
+ be32enc(bp, sectors);
bp += 4;
}
@@ -806,7 +782,7 @@
}
size = bp - buf;
- *(uint16_t*)buf = cpu_to_be16(size - 2);
+ be16enc(buf, size - 2);
if (len > size)
len = size;
write_prdt(p, slot, cfis, buf, len);
@@ -844,8 +820,8 @@
p->unhandled_read |= (1 << slot);
return;
}
- lba = be32_to_cpu(acmd + 2);
- len = be16_to_cpu(acmd + 7);
+ lba = be32dec(acmd + 2);
+ len = be16dec(acmd + 7);
if (len == 0) {
cfis[4] = (cfis[4] & ~7) | ATA_I_CMD | ATA_I_IN;
ahci_write_fis_d2h(p, slot, cfis, ATA_S_READY | ATA_S_DSC);
More information about the svn-soc-all
mailing list