svn commit: r256063 - in projects/random_number_generator: bin/pkill share/man/man5 sys/amd64/conf sys/cam/ctl sys/compat/freebsd32 sys/dev/iscsi sys/i386/conf sys/mips/nlm/dev/sec sys/modules/ibco...
Mark Murray
markm at FreeBSD.org
Sat Oct 5 15:27:13 UTC 2013
Author: markm
Date: Sat Oct 5 15:27:08 2013
New Revision: 256063
URL: http://svnweb.freebsd.org/changeset/base/256063
Log:
MFC- tracking commit.
Added:
projects/random_number_generator/usr.sbin/bhyve/ahci.h
- copied unchanged from r256062, head/usr.sbin/bhyve/ahci.h
projects/random_number_generator/usr.sbin/bhyve/block_if.c
- copied unchanged from r256062, head/usr.sbin/bhyve/block_if.c
projects/random_number_generator/usr.sbin/bhyve/block_if.h
- copied unchanged from r256062, head/usr.sbin/bhyve/block_if.h
projects/random_number_generator/usr.sbin/bhyve/pci_ahci.c
- copied unchanged from r256062, head/usr.sbin/bhyve/pci_ahci.c
Modified:
projects/random_number_generator/bin/pkill/pkill.c
projects/random_number_generator/share/man/man5/src.conf.5
projects/random_number_generator/sys/amd64/conf/NOTES
projects/random_number_generator/sys/cam/ctl/ctl_frontend_iscsi.c
projects/random_number_generator/sys/compat/freebsd32/freebsd32.h
projects/random_number_generator/sys/dev/iscsi/icl.c
projects/random_number_generator/sys/dev/iscsi/iscsi.c
projects/random_number_generator/sys/i386/conf/NOTES
projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsa.c
projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsalib.h
projects/random_number_generator/sys/modules/ibcore/Makefile
projects/random_number_generator/usr.bin/Makefile
projects/random_number_generator/usr.bin/calendar/calendar.1
projects/random_number_generator/usr.bin/svn/lib/libapr/apr_private.h
projects/random_number_generator/usr.bin/svn/svn_private_config.h
projects/random_number_generator/usr.sbin/bhyve/Makefile
projects/random_number_generator/usr.sbin/bhyve/bhyverun.c
projects/random_number_generator/usr.sbin/bhyve/bhyverun.h
projects/random_number_generator/usr.sbin/bhyve/pit_8254.c
projects/random_number_generator/usr.sbin/kldxref/kldxref.c
Directory Properties:
projects/random_number_generator/ (props changed)
projects/random_number_generator/sys/ (props changed)
projects/random_number_generator/usr.bin/calendar/ (props changed)
projects/random_number_generator/usr.sbin/bhyve/ (props changed)
Modified: projects/random_number_generator/bin/pkill/pkill.c
==============================================================================
--- projects/random_number_generator/bin/pkill/pkill.c Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/bin/pkill/pkill.c Sat Oct 5 15:27:08 2013 (r256063)
@@ -481,7 +481,6 @@ main(int argc, char **argv)
* We skip P_SYSTEM processes to match ps(1) output.
*/
if ((kp->ki_flag & P_SYSTEM) == 0 &&
- kp->ki_loginclass != NULL &&
strcmp(kp->ki_loginclass, li->li_name) == 0)
break;
}
Modified: projects/random_number_generator/share/man/man5/src.conf.5
==============================================================================
--- projects/random_number_generator/share/man/man5/src.conf.5 Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/share/man/man5/src.conf.5 Sat Oct 5 15:27:08 2013 (r256063)
@@ -129,7 +129,7 @@ Set to not build
.Xr authpf 8 .
.It Va WITHOUT_BINUTILS
.\" from FreeBSD: head/tools/build/options/WITHOUT_BINUTILS 255974 2013-10-01 17:40:56Z emaste
-Set to not install binutils (as, c++-filt, gconv,
+Set to not install binutils (as, c++-filt, gconv,
ld, nm, objcopy, objdump, readelf, size and strip).
.Bf -symbolic
The option does not generally work for build targets, unless some alternative
Modified: projects/random_number_generator/sys/amd64/conf/NOTES
==============================================================================
--- projects/random_number_generator/sys/amd64/conf/NOTES Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/sys/amd64/conf/NOTES Sat Oct 5 15:27:08 2013 (r256063)
@@ -503,6 +503,7 @@ device asmc
device tpm
device padlock_rng # VIA Padlock RNG
device rdrand_rng # Intel Bull Mountain RNG
+device aesni # AES-NI OpenCrypto module
#
# Laptop/Notebook options:
Modified: projects/random_number_generator/sys/cam/ctl/ctl_frontend_iscsi.c
==============================================================================
--- projects/random_number_generator/sys/cam/ctl/ctl_frontend_iscsi.c Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/sys/cam/ctl/ctl_frontend_iscsi.c Sat Oct 5 15:27:08 2013 (r256063)
@@ -1255,7 +1255,7 @@ cfiscsi_init(void)
cfiscsi_data_wait_zone = uma_zcreate("cfiscsi_data_wait",
sizeof(struct cfiscsi_data_wait), NULL, NULL, NULL, NULL,
- UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ UMA_ALIGN_PTR, 0);
return (0);
Modified: projects/random_number_generator/sys/compat/freebsd32/freebsd32.h
==============================================================================
--- projects/random_number_generator/sys/compat/freebsd32/freebsd32.h Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/sys/compat/freebsd32/freebsd32.h Sat Oct 5 15:27:08 2013 (r256063)
@@ -175,6 +175,7 @@ struct stat32 {
u_int32_t st_blksize;
u_int32_t st_flags;
u_int32_t st_gen;
+ int32_t st_lspare;
struct timespec32 st_birthtim;
unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32));
unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32));
Modified: projects/random_number_generator/sys/dev/iscsi/icl.c
==============================================================================
--- projects/random_number_generator/sys/dev/iscsi/icl.c Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/sys/dev/iscsi/icl.c Sat Oct 5 15:27:08 2013 (r256063)
@@ -957,6 +957,7 @@ icl_pdu_queue(struct icl_pdu *ip)
if (ic->ic_disconnecting || ic->ic_socket == NULL) {
ICL_DEBUG("icl_pdu_queue on closed connection");
ICL_CONN_UNLOCK(ic);
+ icl_pdu_free(ip);
return;
}
TAILQ_INSERT_TAIL(&ic->ic_to_send, ip, ip_next);
@@ -1259,10 +1260,10 @@ icl_load(void)
icl_conn_zone = uma_zcreate("icl_conn",
sizeof(struct icl_conn), NULL, NULL, NULL, NULL,
- UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ UMA_ALIGN_PTR, 0);
icl_pdu_zone = uma_zcreate("icl_pdu",
sizeof(struct icl_pdu), NULL, NULL, NULL, NULL,
- UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ UMA_ALIGN_PTR, 0);
refcount_init(&icl_ncons, 0);
}
Modified: projects/random_number_generator/sys/dev/iscsi/iscsi.c
==============================================================================
--- projects/random_number_generator/sys/dev/iscsi/iscsi.c Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/sys/dev/iscsi/iscsi.c Sat Oct 5 15:27:08 2013 (r256063)
@@ -2030,7 +2030,7 @@ iscsi_load(void)
iscsi_outstanding_zone = uma_zcreate("iscsi_outstanding",
sizeof(struct iscsi_outstanding), NULL, NULL, NULL, NULL,
- UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
+ UMA_ALIGN_PTR, 0);
error = make_dev_p(MAKEDEV_CHECKNAME, &sc->sc_cdev, &iscsi_cdevsw,
NULL, UID_ROOT, GID_WHEEL, 0600, "iscsi");
Modified: projects/random_number_generator/sys/i386/conf/NOTES
==============================================================================
--- projects/random_number_generator/sys/i386/conf/NOTES Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/sys/i386/conf/NOTES Sat Oct 5 15:27:08 2013 (r256063)
@@ -857,6 +857,7 @@ device asmc
device tpm
device padlock_rng # VIA Padlock RNG
device rdrand_rng # Intel Bull Mountain RNG
+device aesni # AES-NI OpenCrypto module
#
# Laptop/Notebook options:
Modified: projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsa.c
==============================================================================
--- projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsa.c Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsa.c Sat Oct 5 15:27:08 2013 (r256063)
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <sys/proc.h>
#include <sys/errno.h>
+#include <sys/endian.h>
#include <sys/malloc.h>
#include <sys/kernel.h>
#include <sys/module.h>
@@ -62,14 +63,14 @@ __FBSDID("$FreeBSD$");
#include <mips/nlm/hal/sys.h>
#include <mips/nlm/hal/fmn.h>
#include <mips/nlm/hal/nlmsaelib.h>
-#include <mips/nlm/dev/sec/nlmrsalib.h>
#include <mips/nlm/dev/sec/rsa_ucode.h>
#include <mips/nlm/hal/cop2.h>
#include <mips/nlm/hal/mips-extns.h>
#include <mips/nlm/msgring.h>
+#include <mips/nlm/dev/sec/nlmrsalib.h>
#ifdef NLM_RSA_DEBUG
-int print_krp_params(struct cryptkop *krp);
+static void print_krp_params(struct cryptkop *krp);
#endif
static int xlp_rsa_init(struct xlp_rsa_softc *sc, int node);
@@ -97,7 +98,7 @@ static device_method_t xlp_rsa_methods[]
/* crypto device methods */
DEVMETHOD(cryptodev_newsession, xlp_rsa_newsession),
- DEVMETHOD(cryptodev_freesession,xlp_rsa_freesession),
+ DEVMETHOD(cryptodev_freesession, xlp_rsa_freesession),
DEVMETHOD(cryptodev_kprocess, xlp_rsa_kprocess),
DEVMETHOD_END
@@ -113,29 +114,24 @@ static devclass_t xlp_rsa_devclass;
DRIVER_MODULE(nlmrsa, pci, xlp_rsa_driver, xlp_rsa_devclass, 0, 0);
MODULE_DEPEND(nlmrsa, crypto, 1, 1, 1);
-void
-nlm_xlprsaecc_msgring_handler(int vc, int size, int code, int src_id,
- struct nlm_fmn_msg *msg, void *data);
-
#ifdef NLM_RSA_DEBUG
-int
+static void
print_krp_params(struct cryptkop *krp)
{
int i;
- printf("krp->krp_op :%d\n",krp->krp_op);
- printf("krp->krp_status :%d\n",krp->krp_status);
- printf("krp->krp_iparams:%d\n",krp->krp_iparams);
- printf("krp->krp_oparams:%d\n",krp->krp_oparams);
- for (i=0;i<krp->krp_iparams+krp->krp_oparams;i++) {
- printf("krp->krp_param[%d].crp_p :0x%llx\n",i,
+ printf("krp->krp_op :%d\n", krp->krp_op);
+ printf("krp->krp_status :%d\n", krp->krp_status);
+ printf("krp->krp_iparams:%d\n", krp->krp_iparams);
+ printf("krp->krp_oparams:%d\n", krp->krp_oparams);
+ for (i = 0; i < krp->krp_iparams + krp->krp_oparams; i++) {
+ printf("krp->krp_param[%d].crp_p :0x%llx\n", i,
(unsigned long long)krp->krp_param[i].crp_p);
- printf("krp->krp_param[%d].crp_nbits :%d\n",i,
+ printf("krp->krp_param[%d].crp_nbits :%d\n", i,
krp->krp_param[i].crp_nbits);
- printf("krp->krp_param[%d].crp_nbytes :%d\n",i,
- (krp->krp_param[i].crp_nbits+7)/8);
+ printf("krp->krp_param[%d].crp_nbytes :%d\n", i,
+ howmany(krp->krp_param[i].crp_nbits, 8));
}
- return 0;
}
#endif
@@ -143,7 +139,7 @@ static int
xlp_rsa_init(struct xlp_rsa_softc *sc, int node)
{
struct xlp_rsa_command *cmd = NULL;
- uint32_t size, fbvc, dstvc, endsel, regval;
+ uint32_t fbvc, dstvc, endsel, regval;
struct nlm_fmn_msg m;
int err, ret, i;
uint64_t base;
@@ -155,37 +151,36 @@ xlp_rsa_init(struct xlp_rsa_softc *sc, i
printf("Couldn't register rsa/ecc msgring handler\n");
goto errout;
}
- m.msg[0] = m.msg[1] = m.msg[2] = m.msg[3] = 0;
- fbvc = nlm_cpuid() / CMS_MAX_VCPU_VC;
+ fbvc = nlm_cpuid() * 4 + XLPGE_FB_VC;
/* Do the CMS credit initialization */
/* Currently it is configured by default to 50 when kernel comes up */
- if ((cmd = malloc(sizeof(struct xlp_rsa_command), M_DEVBUF,
- M_NOWAIT | M_ZERO)) == NULL) {
- err = ENOMEM;
- printf("Failed to allocate mem for cmd\n");
- goto errout;
- }
- size = sizeof(nlm_rsa_ucode_data);
- if ((cmd->rsasrc = malloc(size, M_DEVBUF, M_NOWAIT | M_ZERO)) == NULL) {
- err = ENOMEM;
- printf("Failed to allocate mem for cmd->rsasrc\n");
- goto errout;
- }
- if (((uintptr_t)cmd->rsasrc & (XLP_L2L3_CACHELINE_SIZE - 1))) {
- err = EINVAL;
- printf("cmd->rsasrc is not cacheline aligned\n");
- goto errout;
- }
- memcpy(cmd->rsasrc, (uint8_t *)nlm_rsa_ucode_data, size);
- m.msg[0] = nlm_crypto_form_rsa_ecc_fmn_entry0(1, 0x70, 0,
- vtophys(cmd->rsasrc));
- m.msg[1] = nlm_crypto_form_rsa_ecc_fmn_entry1(0, 1, fbvc,
- vtophys(cmd->rsasrc));
- /* Software scratch pad */
- m.msg[2] = (uintptr_t)cmd;
-
+#if BYTE_ORDER == LITTLE_ENDIAN
+ for (i = 0; i < nitems(nlm_rsa_ucode_data); i++)
+ nlm_rsa_ucode_data[i] = htobe64(nlm_rsa_ucode_data[i]);
+#endif
for (dstvc = sc->rsaecc_vc_start; dstvc <= sc->rsaecc_vc_end; dstvc++) {
+ cmd = malloc(sizeof(struct xlp_rsa_command), M_DEVBUF,
+ M_NOWAIT | M_ZERO);
+ KASSERT(cmd != NULL, ("%s:cmd is NULL\n", __func__));
+ cmd->rsasrc = contigmalloc(sizeof(nlm_rsa_ucode_data),
+ M_DEVBUF,
+ (M_WAITOK | M_ZERO),
+ 0UL /* low address */, -1UL /* high address */,
+ XLP_L2L3_CACHELINE_SIZE /* alignment */,
+ 0UL /* boundary */);
+ KASSERT(cmd->rsasrc != NULL,
+ ("%s:cmd->rsasrc is NULL\n", __func__));
+ memcpy(cmd->rsasrc, nlm_rsa_ucode_data,
+ sizeof(nlm_rsa_ucode_data));
+ m.msg[0] = nlm_crypto_form_rsa_ecc_fmn_entry0(1, 0x70, 0,
+ vtophys(cmd->rsasrc));
+ m.msg[1] = nlm_crypto_form_rsa_ecc_fmn_entry1(0, 1, fbvc,
+ vtophys(cmd->rsasrc));
+ /* Software scratch pad */
+ m.msg[2] = (uintptr_t)cmd;
+ m.msg[3] = 0;
+
ret = nlm_fmn_msgsend(dstvc, 3, FMN_SWCODE_RSA, &m);
if (ret != 0) {
err = -1;
@@ -215,38 +210,42 @@ void
nlm_xlprsaecc_msgring_handler(int vc, int size, int code, int src_id,
struct nlm_fmn_msg *msg, void *data)
{
- struct xlp_rsa_command *cmd = NULL;
- struct xlp_rsa_softc *sc = NULL;
+ struct xlp_rsa_command *cmd;
+ struct xlp_rsa_softc *sc;
+ struct crparam *outparam;
+ int ostart;
KASSERT(code == FMN_SWCODE_RSA,
- ("%s: bad code = %d, expected code = %d\n", __FUNCTION__, code,
+ ("%s: bad code = %d, expected code = %d\n", __func__, code,
FMN_SWCODE_RSA));
- sc = (struct xlp_rsa_softc *)data;
+ sc = data;
KASSERT(src_id >= sc->rsaecc_vc_start && src_id <= sc->rsaecc_vc_end,
- ("%s: bad src_id = %d, expect %d - %d\n", __FUNCTION__,
+ ("%s: bad src_id = %d, expect %d - %d\n", __func__,
src_id, sc->rsaecc_vc_start, sc->rsaecc_vc_end));
cmd = (struct xlp_rsa_command *)(uintptr_t)msg->msg[1];
- KASSERT(cmd != NULL, ("%s:cmd not received properly\n",
- __FUNCTION__));
+ KASSERT(cmd != NULL, ("%s:cmd not received properly\n", __func__));
- KASSERT(RSA_ERROR(msg->msg[0]) == 0,
- ("%s: Message rcv msg0 %llx msg1 %llx err %x \n", __FUNCTION__,
- (unsigned long long)msg->msg[0], (unsigned long long)msg->msg[1],
- (int)RSA_ERROR(msg->msg[0])));
-
- xlp_rsa_inp2hwformat(((uint8_t *)cmd->rsasrc+
- (cmd->rsaopsize*cmd->krp->krp_iparams)),
- cmd->krp->krp_param[cmd->krp->krp_iparams].crp_p,
- ((cmd->krp->krp_param[cmd->krp->krp_iparams].crp_nbits+7)/8), 1);
-
- if (cmd->krp != NULL)
+ if (RSA_ERROR(msg->msg[0]) != 0) {
+ printf("%s: Message rcv msg0 %llx msg1 %llx err %x \n",
+ __func__, (unsigned long long)msg->msg[0],
+ (unsigned long long)msg->msg[1],
+ (int)RSA_ERROR(msg->msg[0]));
+ cmd->krp->krp_status = EBADMSG;
+ }
+
+ if (cmd->krp != NULL) {
+ ostart = cmd->krp->krp_iparams;
+ outparam = &cmd->krp->krp_param[ostart];
+ xlp_rsa_inp2hwformat(cmd->rsasrc + cmd->rsaopsize * ostart,
+ outparam->crp_p,
+ howmany(outparam->crp_nbits, 8),
+ 1);
crypto_kdone(cmd->krp);
+ }
xlp_free_cmd_params(cmd);
-
- return;
}
static int
@@ -279,7 +278,7 @@ xlp_rsa_attach(device_t dev)
freq = nlm_set_device_frequency(node, DFS_DEVICE_RSA, 250);
if (bootverbose)
device_printf(dev, "RSA Freq: %dMHz\n", freq);
- if(pci_get_device(dev) == PCI_DEVICE_ID_NLM_RSA) {
+ if (pci_get_device(dev) == PCI_DEVICE_ID_NLM_RSA) {
device_set_desc(dev, "XLP RSA/ECC Accelerator");
if ((sc->sc_cid = crypto_get_driverid(dev,
CRYPTOCAP_F_HARDWARE)) < 0) {
@@ -287,7 +286,7 @@ xlp_rsa_attach(device_t dev)
goto error_exit;
}
if (crypto_kregister(sc->sc_cid, CRK_MOD_EXP, 0) != 0)
- printf("register failed for CRK_MOD_EXP\n");
+ goto error_exit;
base = nlm_get_rsa_pcibase(node);
qstart = nlm_qidstart(base);
@@ -302,7 +301,6 @@ xlp_rsa_attach(device_t dev)
error_exit:
return (ENXIO);
-
}
/*
@@ -323,8 +321,8 @@ static int
xlp_rsa_newsession(device_t dev, u_int32_t *sidp, struct cryptoini *cri)
{
struct xlp_rsa_softc *sc = device_get_softc(dev);
- int sesn;
struct xlp_rsa_session *ses = NULL;
+ int sesn;
if (sidp == NULL || cri == NULL || sc == NULL)
return (EINVAL);
@@ -346,7 +344,7 @@ xlp_rsa_newsession(device_t dev, u_int32
if (ses == NULL) {
sesn = sc->sc_nsessions;
- ses = malloc((sesn + 1)*sizeof(struct xlp_rsa_session),
+ ses = malloc((sesn + 1) * sizeof(*ses),
M_DEVBUF, M_NOWAIT);
if (ses == NULL)
return (ENOMEM);
@@ -392,43 +390,44 @@ xlp_rsa_freesession(device_t dev, u_int6
static void
xlp_free_cmd_params(struct xlp_rsa_command *cmd)
{
- if (cmd->rsasrc != NULL)
- free(cmd->rsasrc, M_DEVBUF);
- if (cmd != NULL)
- free(cmd, M_DEVBUF);
- return;
+
+ if (cmd == NULL)
+ return;
+ if (cmd->rsasrc != NULL) {
+ if (cmd->krp == NULL) /* Micro code load */
+ contigfree(cmd->rsasrc, sizeof(nlm_rsa_ucode_data),
+ M_DEVBUF);
+ else
+ free(cmd->rsasrc, M_DEVBUF);
+ }
+ free(cmd, M_DEVBUF);
}
static int
xlp_get_rsa_opsize(struct xlp_rsa_command *cmd, unsigned int bits)
{
- if (bits == 0)
+
+ if (bits == 0 || bits > 8192)
return (-1);
/* XLP hardware expects always a fixed size with unused bytes
* zeroed out in the input data */
if (bits <= 512) {
cmd->rsatype = 0x40;
- cmd->rsaopsize = (512/8);
- return (0);
- } else if ((bits > 512) && (bits <= 1024)) {
+ cmd->rsaopsize = 64;
+ } else if (bits <= 1024) {
cmd->rsatype = 0x41;
- cmd->rsaopsize = (1024/8);
- return (0);
- } else if ((bits > 1024) && (bits <= 2048)) {
+ cmd->rsaopsize = 128;
+ } else if (bits <= 2048) {
cmd->rsatype = 0x42;
- cmd->rsaopsize = (2048/8);
- return (0);
- } else if ((bits > 2048) && (bits <= 4096)) {
+ cmd->rsaopsize = 256;
+ } else if (bits <= 4096) {
cmd->rsatype = 0x43;
- cmd->rsaopsize = (4096/8);
- return (0);
- } else if ((bits > 4096) && (bits <= 8192)) {
+ cmd->rsaopsize = 512;
+ } else if (bits <= 8192) {
cmd->rsatype = 0x44;
- cmd->rsaopsize = (8192/8);
- return (0);
- } else {
- return (-1);
+ cmd->rsaopsize = 1024;
}
+ return (0);
}
static int
@@ -436,25 +435,25 @@ xlp_rsa_inp2hwformat(uint8_t *src, uint8
uint8_t result)
{
uint32_t pdwords, pbytes;
- int i=0, j=0, k=0;
+ int i, j, k;
- pdwords = (paramsize / 8);
- pbytes = (paramsize % 8);
+ pdwords = paramsize / 8;
+ pbytes = paramsize % 8;
for (i = 0, k = 0; i < pdwords; i++) {
/* copy dwords of inp/hw to hw/out format */
for (j = 7; j >= 0; j--, k++)
- dst[(i*8)+j] = src[k];
+ dst[i * 8 + j] = src[k];
}
if (pbytes) {
- if (!result) {
+ if (result == 0) {
/* copy rem bytes of input data to hw format */
for (j = 7; k < paramsize; j--, k++)
- dst[(i*8)+j] = src[k];
+ dst[i * 8 + j] = src[k];
} else {
/* copy rem bytes of hw data to exp output format */
for (j = 7; k < paramsize; j--, k++)
- dst[k] = src[(i*8)+j];
+ dst[k] = src[i * 8 + j];
}
}
@@ -469,15 +468,15 @@ nlm_crypto_complete_rsa_request(struct x
struct nlm_fmn_msg m;
int ret;
- fbvc = nlm_cpuid() / CMS_MAX_VCPU_VC;
- m.msg[0] = m.msg[1] = m.msg[2] = m.msg[3] = 0;
+ fbvc = nlm_cpuid() * 4 + XLPGE_FB_VC;
m.msg[0] = nlm_crypto_form_rsa_ecc_fmn_entry0(1, cmd->rsatype,
cmd->rsafn, vtophys(cmd->rsasrc));
m.msg[1] = nlm_crypto_form_rsa_ecc_fmn_entry1(0, 1, fbvc,
- vtophys(cmd->rsasrc + (cmd->rsaopsize * cmd->krp->krp_iparams)));
+ vtophys(cmd->rsasrc + cmd->rsaopsize * cmd->krp->krp_iparams));
/* Software scratch pad */
m.msg[2] = (uintptr_t)cmd;
+ m.msg[3] = 0;
/* Send the message to rsa engine vc */
ret = nlm_fmn_msgsend(sc->rsaecc_vc_start, 3, FMN_SWCODE_RSA, &m);
@@ -494,57 +493,57 @@ static int
xlp_rsa_kprocess(device_t dev, struct cryptkop *krp, int hint)
{
struct xlp_rsa_softc *sc = device_get_softc(dev);
- struct xlp_rsa_command *cmd = NULL;
- int err = -1, i;
+ struct xlp_rsa_command *cmd;
+ struct crparam *kp;
+ int err, i;
if (krp == NULL || krp->krp_callback == NULL)
return (EINVAL);
- if ((cmd = malloc(sizeof(struct xlp_rsa_command), M_DEVBUF,
- M_NOWAIT | M_ZERO)) == NULL) {
- err = ENOMEM;
- goto errout;
- }
+ cmd = malloc(sizeof(struct xlp_rsa_command), M_DEVBUF,
+ M_NOWAIT | M_ZERO);
+ KASSERT(cmd != NULL, ("%s:cmd is NULL\n", __func__));
cmd->krp = krp;
#ifdef NLM_RSA_DEBUG
print_krp_params(krp);
#endif
+ err = EOPNOTSUPP;
switch (krp->krp_op) {
case CRK_MOD_EXP:
if (krp->krp_iparams == 3 && krp->krp_oparams == 1)
break;
goto errout;
default:
- printf("Op:%d not yet supported\n", krp->krp_op);
+ device_printf(dev, "Op:%d not yet supported\n", krp->krp_op);
goto errout;
}
- if ((xlp_get_rsa_opsize(cmd,
- krp->krp_param[krp->krp_iparams-1].crp_nbits)) != 0) {
+ err = xlp_get_rsa_opsize(cmd,
+ krp->krp_param[krp->krp_iparams - 1].crp_nbits);
+ if (err != 0) {
err = EINVAL;
goto errout;
}
cmd->rsafn = 0; /* Mod Exp */
- if ((cmd->rsasrc = malloc((cmd->rsaopsize *
- (krp->krp_iparams+krp->krp_oparams)), M_DEVBUF,
- M_NOWAIT | M_ZERO)) == NULL) {
+ cmd->rsasrc = malloc(
+ cmd->rsaopsize * (krp->krp_iparams + krp->krp_oparams),
+ M_DEVBUF,
+ M_NOWAIT | M_ZERO);
+ if (cmd->rsasrc == NULL) {
err = ENOMEM;
goto errout;
}
- if (((uintptr_t)cmd->rsasrc & (XLP_L2L3_CACHELINE_SIZE - 1))) {
- err = EINVAL;
- goto errout;
- }
- for (i=0;i<krp->krp_iparams;i++) {
- KASSERT(krp->krp_param[i].crp_nbits != 0,
- ("%s: parameter[%d]'s length is zero\n", __FUNCTION__, i));
- xlp_rsa_inp2hwformat(krp->krp_param[i].crp_p,
- ((uint8_t *)cmd->rsasrc+(i*cmd->rsaopsize)),
- ((krp->krp_param[i].crp_nbits+7)/8), 0);
+ for (i = 0, kp = krp->krp_param; i < krp->krp_iparams; i++, kp++) {
+ KASSERT(kp->crp_nbits != 0,
+ ("%s: parameter[%d]'s length is zero\n", __func__, i));
+ xlp_rsa_inp2hwformat(kp->crp_p,
+ cmd->rsasrc + i * cmd->rsaopsize,
+ howmany(kp->crp_nbits, 8), 0);
}
- if (nlm_crypto_complete_rsa_request(sc, cmd) != 0)
+ err = nlm_crypto_complete_rsa_request(sc, cmd);
+ if (err != 0)
goto errout;
return (0);
Modified: projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsalib.h
==============================================================================
--- projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsalib.h Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/sys/mips/nlm/dev/sec/nlmrsalib.h Sat Oct 5 15:27:08 2013 (r256063)
@@ -30,12 +30,10 @@
#ifndef _NLMRSALIB_H_
#define _NLMRSALIB_H_
-#define XLP_RSA_SESSION(sid) ((sid) & 0x000007ff)
-#define XLP_RSA_SID(crd,ses) (((crd) << 28) | ((ses) & 0x7ff))
+#define XLP_RSA_SESSION(sid) ((sid) & 0x000007ff)
+#define XLP_RSA_SID(crd,ses) (((crd) << 28) | ((ses) & 0x7ff))
-#define NUM_RSAECC_VC 9
-
-#define RSA_ERROR(__msg0) ((__msg0 >> 53) & 0x1f)
+#define RSA_ERROR(msg0) (((msg0) >> 53) & 0x1f)
struct xlp_rsa_session {
uint32_t sessionid;
@@ -65,4 +63,8 @@ struct xlp_rsa_softc {
int rsaecc_vc_end;
};
+void
+nlm_xlprsaecc_msgring_handler(int vc, int size, int code, int src_id,
+ struct nlm_fmn_msg *msg, void *data);
+
#endif /* _NLMRSALIB_H_ */
Modified: projects/random_number_generator/sys/modules/ibcore/Makefile
==============================================================================
--- projects/random_number_generator/sys/modules/ibcore/Makefile Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/sys/modules/ibcore/Makefile Sat Oct 5 15:27:08 2013 (r256063)
@@ -11,7 +11,7 @@ SRCS+= agent.h core_priv.h mad.c notice.
SRCS+= cache.c device.c mad_priv.h packer.c sysfs.c user_mad.c verbs.c
SRCS+= cm.c fmr_pool.c mad_rmpp.c sa.h ucm.c uverbs.h cma.c
SRCS+= linux_compat.c linux_radix.c linux_idr.c
-SRCS+= vnode_if.h device_if.h bus_if.h pci_if.h opt_inet.h
+SRCS+= vnode_if.h device_if.h bus_if.h pci_if.h opt_inet.h opt_inet6.h
CFLAGS+= -I${.CURDIR}/../../ofed/drivers/infiniband/core
CFLAGS+= -I${.CURDIR}/../mlx4ib
Modified: projects/random_number_generator/usr.bin/Makefile
==============================================================================
--- projects/random_number_generator/usr.bin/Makefile Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/usr.bin/Makefile Sat Oct 5 15:27:08 2013 (r256063)
@@ -366,13 +366,9 @@ SUBDIR+= users
SUBDIR+= who
.endif
-.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "ia64" || \
- ${MACHINE_ARCH} == "sparc64" || ${MACHINE_ARCH} == "i386" || \
- (${MACHINE_ARCH} == "armv6" && ${COMPILER_TYPE} == "clang")
.if ${MK_SVN} == "yes" || ${MK_SVNLITE} == "yes"
SUBDIR+= svn
.endif
-.endif
.include <bsd.arch.inc.mk>
Modified: projects/random_number_generator/usr.bin/calendar/calendar.1
==============================================================================
--- projects/random_number_generator/usr.bin/calendar/calendar.1 Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/usr.bin/calendar/calendar.1 Sat Oct 5 15:27:08 2013 (r256063)
@@ -180,7 +180,7 @@ a continuation of the previous line.
The
.Nm
file is preprocessed by a limited subset of
-.Xr cpp 1
+.Xr cpp 1
internally, allowing the inclusion of shared files such as
lists of company holidays or meetings.
This limited subset consists of \fB#include #ifndef #endif\fR and \fB#define\fR.
Modified: projects/random_number_generator/usr.bin/svn/lib/libapr/apr_private.h
==============================================================================
--- projects/random_number_generator/usr.bin/svn/lib/libapr/apr_private.h Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/usr.bin/svn/lib/libapr/apr_private.h Sat Oct 5 15:27:08 2013 (r256063)
@@ -97,7 +97,9 @@
#define HAVE_ARPA_INET_H 1
/* Define if compiler provides atomic builtins */
+#if !defined(__mips__) && !defined(__arm__)
#define HAVE_ATOMIC_BUILTINS 1
+#endif
/* Define if BONE_VERSION is defined in sys/socket.h */
/* #undef HAVE_BONE_VERSION */
Modified: projects/random_number_generator/usr.bin/svn/svn_private_config.h
==============================================================================
--- projects/random_number_generator/usr.bin/svn/svn_private_config.h Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/usr.bin/svn/svn_private_config.h Sat Oct 5 15:27:08 2013 (r256063)
@@ -153,7 +153,7 @@
#define SVN_FS_WANT_DB_PATCH 14
/* Define if compiler provides atomic builtins */
-#define SVN_HAS_ATOMIC_BUILTINS 1
+#define SVN_HAS_ATOMIC_BUILTINS 0
/* Is GNOME Keyring support enabled? */
/* #undef SVN_HAVE_GNOME_KEYRING */
Modified: projects/random_number_generator/usr.sbin/bhyve/Makefile
==============================================================================
--- projects/random_number_generator/usr.sbin/bhyve/Makefile Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/usr.sbin/bhyve/Makefile Sat Oct 5 15:27:08 2013 (r256063)
@@ -6,8 +6,8 @@ PROG= bhyve
DEBUG_FLAGS= -g -O0
-SRCS= acpi.c atpic.c bhyverun.c consport.c dbgport.c elcr.c inout.c
-SRCS+= ioapic.c mem.c mevent.c mptbl.c
+SRCS= acpi.c atpic.c bhyverun.c block_if.c consport.c dbgport.c elcr.c
+SRCS+= inout.c ioapic.c mem.c mevent.c mptbl.c pci_ahci.c
SRCS+= pci_emul.c pci_hostbridge.c pci_passthru.c pci_virtio_block.c
SRCS+= pci_virtio_net.c pci_uart.c pit_8254.c pmtmr.c post.c rtc.c
SRCS+= virtio.c xmsr.c spinup_ap.c
Copied: projects/random_number_generator/usr.sbin/bhyve/ahci.h (from r256062, head/usr.sbin/bhyve/ahci.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/usr.sbin/bhyve/ahci.h Sat Oct 5 15:27:08 2013 (r256063, copy of r256062, head/usr.sbin/bhyve/ahci.h)
@@ -0,0 +1,304 @@
+/*-
+ * Copyright (c) 1998 - 2008 Søren Schmidt <sos at FreeBSD.org>
+ * Copyright (c) 2009-2012 Alexander Motin <mav at FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * without modification, immediately at the beginning of the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _AHCI_H_
+#define _AHCI_H_
+
+/* ATA register defines */
+#define ATA_DATA 0 /* (RW) data */
+
+#define ATA_FEATURE 1 /* (W) feature */
+#define ATA_F_DMA 0x01 /* enable DMA */
+#define ATA_F_OVL 0x02 /* enable overlap */
+
+#define ATA_COUNT 2 /* (W) sector count */
+
+#define ATA_SECTOR 3 /* (RW) sector # */
+#define ATA_CYL_LSB 4 /* (RW) cylinder# LSB */
+#define ATA_CYL_MSB 5 /* (RW) cylinder# MSB */
+#define ATA_DRIVE 6 /* (W) Sector/Drive/Head */
+#define ATA_D_LBA 0x40 /* use LBA addressing */
+#define ATA_D_IBM 0xa0 /* 512 byte sectors, ECC */
+
+#define ATA_COMMAND 7 /* (W) command */
+
+#define ATA_ERROR 8 /* (R) error */
+#define ATA_E_ILI 0x01 /* illegal length */
+#define ATA_E_NM 0x02 /* no media */
+#define ATA_E_ABORT 0x04 /* command aborted */
+#define ATA_E_MCR 0x08 /* media change request */
+#define ATA_E_IDNF 0x10 /* ID not found */
+#define ATA_E_MC 0x20 /* media changed */
+#define ATA_E_UNC 0x40 /* uncorrectable data */
+#define ATA_E_ICRC 0x80 /* UDMA crc error */
+#define ATA_E_ATAPI_SENSE_MASK 0xf0 /* ATAPI sense key mask */
+
+#define ATA_IREASON 9 /* (R) interrupt reason */
+#define ATA_I_CMD 0x01 /* cmd (1) | data (0) */
+#define ATA_I_IN 0x02 /* read (1) | write (0) */
+#define ATA_I_RELEASE 0x04 /* released bus (1) */
+#define ATA_I_TAGMASK 0xf8 /* tag mask */
+
+#define ATA_STATUS 10 /* (R) status */
+#define ATA_ALTSTAT 11 /* (R) alternate status */
+#define ATA_S_ERROR 0x01 /* error */
+#define ATA_S_INDEX 0x02 /* index */
+#define ATA_S_CORR 0x04 /* data corrected */
+#define ATA_S_DRQ 0x08 /* data request */
+#define ATA_S_DSC 0x10 /* drive seek completed */
+#define ATA_S_SERVICE 0x10 /* drive needs service */
+#define ATA_S_DWF 0x20 /* drive write fault */
+#define ATA_S_DMA 0x20 /* DMA ready */
+#define ATA_S_READY 0x40 /* drive ready */
+#define ATA_S_BUSY 0x80 /* busy */
+
+#define ATA_CONTROL 12 /* (W) control */
+#define ATA_A_IDS 0x02 /* disable interrupts */
+#define ATA_A_RESET 0x04 /* RESET controller */
+#define ATA_A_4BIT 0x08 /* 4 head bits */
+#define ATA_A_HOB 0x80 /* High Order Byte enable */
+
+/* SATA register defines */
+#define ATA_SSTATUS 13
+#define ATA_SS_DET_MASK 0x0000000f
+#define ATA_SS_DET_NO_DEVICE 0x00000000
+#define ATA_SS_DET_DEV_PRESENT 0x00000001
+#define ATA_SS_DET_PHY_ONLINE 0x00000003
+#define ATA_SS_DET_PHY_OFFLINE 0x00000004
+
+#define ATA_SS_SPD_MASK 0x000000f0
+#define ATA_SS_SPD_NO_SPEED 0x00000000
+#define ATA_SS_SPD_GEN1 0x00000010
+#define ATA_SS_SPD_GEN2 0x00000020
+#define ATA_SS_SPD_GEN3 0x00000040
+
+#define ATA_SS_IPM_MASK 0x00000f00
+#define ATA_SS_IPM_NO_DEVICE 0x00000000
+#define ATA_SS_IPM_ACTIVE 0x00000100
+#define ATA_SS_IPM_PARTIAL 0x00000200
+#define ATA_SS_IPM_SLUMBER 0x00000600
+
+#define ATA_SERROR 14
+#define ATA_SE_DATA_CORRECTED 0x00000001
+#define ATA_SE_COMM_CORRECTED 0x00000002
+#define ATA_SE_DATA_ERR 0x00000100
+#define ATA_SE_COMM_ERR 0x00000200
+#define ATA_SE_PROT_ERR 0x00000400
+#define ATA_SE_HOST_ERR 0x00000800
+#define ATA_SE_PHY_CHANGED 0x00010000
+#define ATA_SE_PHY_IERROR 0x00020000
+#define ATA_SE_COMM_WAKE 0x00040000
+#define ATA_SE_DECODE_ERR 0x00080000
+#define ATA_SE_PARITY_ERR 0x00100000
+#define ATA_SE_CRC_ERR 0x00200000
+#define ATA_SE_HANDSHAKE_ERR 0x00400000
+#define ATA_SE_LINKSEQ_ERR 0x00800000
+#define ATA_SE_TRANSPORT_ERR 0x01000000
+#define ATA_SE_UNKNOWN_FIS 0x02000000
+#define ATA_SE_EXCHANGED 0x04000000
+
+#define ATA_SCONTROL 15
+#define ATA_SC_DET_MASK 0x0000000f
+#define ATA_SC_DET_IDLE 0x00000000
+#define ATA_SC_DET_RESET 0x00000001
+#define ATA_SC_DET_DISABLE 0x00000004
+
+#define ATA_SC_SPD_MASK 0x000000f0
+#define ATA_SC_SPD_NO_SPEED 0x00000000
+#define ATA_SC_SPD_SPEED_GEN1 0x00000010
+#define ATA_SC_SPD_SPEED_GEN2 0x00000020
+#define ATA_SC_SPD_SPEED_GEN3 0x00000040
+
+#define ATA_SC_IPM_MASK 0x00000f00
+#define ATA_SC_IPM_NONE 0x00000000
+#define ATA_SC_IPM_DIS_PARTIAL 0x00000100
+#define ATA_SC_IPM_DIS_SLUMBER 0x00000200
+
+#define ATA_SACTIVE 16
+
+#define AHCI_MAX_PORTS 32
+#define AHCI_MAX_SLOTS 32
+
+/* SATA AHCI v1.0 register defines */
+#define AHCI_CAP 0x00
+#define AHCI_CAP_NPMASK 0x0000001f
+#define AHCI_CAP_SXS 0x00000020
+#define AHCI_CAP_EMS 0x00000040
+#define AHCI_CAP_CCCS 0x00000080
+#define AHCI_CAP_NCS 0x00001F00
+#define AHCI_CAP_NCS_SHIFT 8
+#define AHCI_CAP_PSC 0x00002000
+#define AHCI_CAP_SSC 0x00004000
+#define AHCI_CAP_PMD 0x00008000
+#define AHCI_CAP_FBSS 0x00010000
+#define AHCI_CAP_SPM 0x00020000
+#define AHCI_CAP_SAM 0x00080000
+#define AHCI_CAP_ISS 0x00F00000
+#define AHCI_CAP_ISS_SHIFT 20
+#define AHCI_CAP_SCLO 0x01000000
+#define AHCI_CAP_SAL 0x02000000
+#define AHCI_CAP_SALP 0x04000000
+#define AHCI_CAP_SSS 0x08000000
+#define AHCI_CAP_SMPS 0x10000000
+#define AHCI_CAP_SSNTF 0x20000000
+#define AHCI_CAP_SNCQ 0x40000000
+#define AHCI_CAP_64BIT 0x80000000
+
+#define AHCI_GHC 0x04
+#define AHCI_GHC_AE 0x80000000
+#define AHCI_GHC_MRSM 0x00000004
+#define AHCI_GHC_IE 0x00000002
+#define AHCI_GHC_HR 0x00000001
+
+#define AHCI_IS 0x08
+#define AHCI_PI 0x0c
+#define AHCI_VS 0x10
+
+#define AHCI_CCCC 0x14
+#define AHCI_CCCC_TV_MASK 0xffff0000
+#define AHCI_CCCC_TV_SHIFT 16
+#define AHCI_CCCC_CC_MASK 0x0000ff00
+#define AHCI_CCCC_CC_SHIFT 8
+#define AHCI_CCCC_INT_MASK 0x000000f8
+#define AHCI_CCCC_INT_SHIFT 3
+#define AHCI_CCCC_EN 0x00000001
+#define AHCI_CCCP 0x18
+
+#define AHCI_EM_LOC 0x1C
+#define AHCI_EM_CTL 0x20
+#define AHCI_EM_MR 0x00000001
+#define AHCI_EM_TM 0x00000100
+#define AHCI_EM_RST 0x00000200
+#define AHCI_EM_LED 0x00010000
+#define AHCI_EM_SAFTE 0x00020000
+#define AHCI_EM_SES2 0x00040000
+#define AHCI_EM_SGPIO 0x00080000
+#define AHCI_EM_SMB 0x01000000
+#define AHCI_EM_XMT 0x02000000
+#define AHCI_EM_ALHD 0x04000000
+#define AHCI_EM_PM 0x08000000
+
+#define AHCI_CAP2 0x24
+#define AHCI_CAP2_BOH 0x00000001
+#define AHCI_CAP2_NVMP 0x00000002
+#define AHCI_CAP2_APST 0x00000004
+
+#define AHCI_OFFSET 0x100
+#define AHCI_STEP 0x80
+
+#define AHCI_P_CLB 0x00
+#define AHCI_P_CLBU 0x04
+#define AHCI_P_FB 0x08
+#define AHCI_P_FBU 0x0c
+#define AHCI_P_IS 0x10
+#define AHCI_P_IE 0x14
+#define AHCI_P_IX_DHR 0x00000001
+#define AHCI_P_IX_PS 0x00000002
+#define AHCI_P_IX_DS 0x00000004
+#define AHCI_P_IX_SDB 0x00000008
+#define AHCI_P_IX_UF 0x00000010
+#define AHCI_P_IX_DP 0x00000020
+#define AHCI_P_IX_PC 0x00000040
+#define AHCI_P_IX_MP 0x00000080
+
+#define AHCI_P_IX_PRC 0x00400000
+#define AHCI_P_IX_IPM 0x00800000
+#define AHCI_P_IX_OF 0x01000000
+#define AHCI_P_IX_INF 0x04000000
+#define AHCI_P_IX_IF 0x08000000
+#define AHCI_P_IX_HBD 0x10000000
+#define AHCI_P_IX_HBF 0x20000000
+#define AHCI_P_IX_TFE 0x40000000
+#define AHCI_P_IX_CPD 0x80000000
+
+#define AHCI_P_CMD 0x18
+#define AHCI_P_CMD_ST 0x00000001
+#define AHCI_P_CMD_SUD 0x00000002
+#define AHCI_P_CMD_POD 0x00000004
+#define AHCI_P_CMD_CLO 0x00000008
+#define AHCI_P_CMD_FRE 0x00000010
+#define AHCI_P_CMD_CCS_MASK 0x00001f00
+#define AHCI_P_CMD_CCS_SHIFT 8
+#define AHCI_P_CMD_ISS 0x00002000
+#define AHCI_P_CMD_FR 0x00004000
+#define AHCI_P_CMD_CR 0x00008000
+#define AHCI_P_CMD_CPS 0x00010000
+#define AHCI_P_CMD_PMA 0x00020000
+#define AHCI_P_CMD_HPCP 0x00040000
+#define AHCI_P_CMD_MPSP 0x00080000
+#define AHCI_P_CMD_CPD 0x00100000
+#define AHCI_P_CMD_ESP 0x00200000
+#define AHCI_P_CMD_FBSCP 0x00400000
+#define AHCI_P_CMD_APSTE 0x00800000
+#define AHCI_P_CMD_ATAPI 0x01000000
+#define AHCI_P_CMD_DLAE 0x02000000
+#define AHCI_P_CMD_ALPE 0x04000000
+#define AHCI_P_CMD_ASP 0x08000000
+#define AHCI_P_CMD_ICC_MASK 0xf0000000
+#define AHCI_P_CMD_NOOP 0x00000000
+#define AHCI_P_CMD_ACTIVE 0x10000000
+#define AHCI_P_CMD_PARTIAL 0x20000000
+#define AHCI_P_CMD_SLUMBER 0x60000000
+
+#define AHCI_P_TFD 0x20
+#define AHCI_P_SIG 0x24
+#define AHCI_P_SSTS 0x28
+#define AHCI_P_SCTL 0x2c
+#define AHCI_P_SERR 0x30
+#define AHCI_P_SACT 0x34
+#define AHCI_P_CI 0x38
+#define AHCI_P_SNTF 0x3C
+#define AHCI_P_FBS 0x40
+#define AHCI_P_FBS_EN 0x00000001
+#define AHCI_P_FBS_DEC 0x00000002
+#define AHCI_P_FBS_SDE 0x00000004
+#define AHCI_P_FBS_DEV 0x00000f00
+#define AHCI_P_FBS_DEV_SHIFT 8
+#define AHCI_P_FBS_ADO 0x0000f000
+#define AHCI_P_FBS_ADO_SHIFT 12
+#define AHCI_P_FBS_DWE 0x000f0000
+#define AHCI_P_FBS_DWE_SHIFT 16
+
+/* Just to be sure, if building as module. */
+#if MAXPHYS < 512 * 1024
+#undef MAXPHYS
+#define MAXPHYS 512 * 1024
+#endif
+/* Pessimistic prognosis on number of required S/G entries */
+#define AHCI_SG_ENTRIES (roundup(btoc(MAXPHYS) + 1, 8))
+/* Command list. 32 commands. First, 1Kbyte aligned. */
+#define AHCI_CL_OFFSET 0
+#define AHCI_CL_SIZE 32
+/* Command tables. Up to 32 commands, Each, 128byte aligned. */
+#define AHCI_CT_OFFSET (AHCI_CL_OFFSET + AHCI_CL_SIZE * AHCI_MAX_SLOTS)
+#define AHCI_CT_SIZE (128 + AHCI_SG_ENTRIES * 16)
+/* Total main work area. */
+#define AHCI_WORK_SIZE (AHCI_CT_OFFSET + AHCI_CT_SIZE * ch->numslots)
+
+#endif /* _AHCI_H_ */
Modified: projects/random_number_generator/usr.sbin/bhyve/bhyverun.c
==============================================================================
--- projects/random_number_generator/usr.sbin/bhyve/bhyverun.c Fri Oct 4 23:29:07 2013 (r256062)
+++ projects/random_number_generator/usr.sbin/bhyve/bhyverun.c Sat Oct 5 15:27:08 2013 (r256063)
@@ -41,7 +41,6 @@ __FBSDID("$FreeBSD$");
#include <unistd.h>
#include <assert.h>
#include <errno.h>
-#include <signal.h>
#include <pthread.h>
#include <pthread_np.h>
@@ -61,9 +60,6 @@ __FBSDID("$FreeBSD$");
#include "spinup_ap.h"
#include "rtc.h"
-#define DEFAULT_GUEST_HZ 100
-#define DEFAULT_GUEST_TSLICE 200
-
#define GUEST_NIO_PORT 0x488 /* guest upcalls via i/o port */
#define VMEXIT_SWITCH 0 /* force vcpu switch in mux mode */
@@ -77,14 +73,11 @@ __FBSDID("$FreeBSD$");
typedef int (*vmexit_handler_t)(struct vmctx *, struct vm_exit *, int *vcpu);
-int guest_tslice = DEFAULT_GUEST_TSLICE;
-int guest_hz = DEFAULT_GUEST_HZ;
char *vmname;
int guest_ncpus;
static int pincpu = -1;
-static int guest_vcpu_mux;
static int guest_vmexit_on_hlt, guest_vmexit_on_pause, disable_x2apic;
static int foundcpus;
@@ -102,7 +95,7 @@ static void vm_loop(struct vmctx *ctx, i
struct vm_exit vmexit[VM_MAXCPU];
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list