本文整理汇总了C++中bus_space_write_2函数的典型用法代码示例。如果您正苦于以下问题:C++ bus_space_write_2函数的具体用法?C++ bus_space_write_2怎么用?C++ bus_space_write_2使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bus_space_write_2函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: le_pci_wrcsr
static void
le_pci_wrcsr(struct lance_softc *sc, uint16_t port, uint16_t val)
{
struct le_pci_softc *lesc = (struct le_pci_softc *)sc;
bus_space_write_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, port);
bus_space_barrier(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RAP, 2,
BUS_SPACE_BARRIER_WRITE);
bus_space_write_2(lesc->sc_regt, lesc->sc_regh, PCNET_PCI_RDP, val);
}
开发者ID:AhmadTux,项目名称:DragonFlyBSD,代码行数:10,代码来源:if_lnc_pci.c
示例2: sf256pcs_rset
void
sf256pcs_rset(bus_space_tag_t iot, bus_space_handle_t ioh,
bus_size_t offset, u_int32_t d)
{
d = FM_IO_GPIO(FM_IO_PIN1 | FM_IO_PIN2 | FM_IO_PIN3);
d |= PCS_WREN_OFF | PCS_DATA_OFF | PCS_CLOCK_OFF;
bus_space_write_2(iot, ioh, offset, d);
bus_space_write_2(iot, ioh, offset, d);
}
开发者ID:repos-holder,项目名称:openbsd-patches,代码行数:10,代码来源:fmsradio.c
示例3: imxuart_start
void
imxuart_start(struct tty *tp)
{
struct imxuart_softc *sc = imxuart_cd.cd_devs[DEVUNIT(tp->t_dev)];
bus_space_tag_t iot = sc->sc_iot;
bus_space_handle_t ioh = sc->sc_ioh;
int s;
s = spltty();
if (ISSET(tp->t_state, TS_BUSY)) {
splx(s);
return;
}
if (ISSET(tp->t_state, TS_TIMEOUT | TS_TTSTOP))
goto stopped;
#ifdef DAMNFUCKSHIT
/* clear to send (IE the RTS pin on this shit) is not directly \
* readable - skip check for now
*/
if (ISSET(tp->t_cflag, CRTSCTS) && !ISSET(sc->sc_msr, IMXUART_CTS))
goto stopped;
#endif
if (tp->t_outq.c_cc <= tp->t_lowat) {
if (ISSET(tp->t_state, TS_ASLEEP)) {
CLR(tp->t_state, TS_ASLEEP);
wakeup(&tp->t_outq);
}
if (tp->t_outq.c_cc == 0)
goto stopped;
selwakeup(&tp->t_wsel);
}
SET(tp->t_state, TS_BUSY);
if (!ISSET(sc->sc_ucr1, IMXUART_CR1_TXMPTYEN)) {
SET(sc->sc_ucr1, IMXUART_CR1_TXMPTYEN);
bus_space_write_2(iot, ioh, IMXUART_UCR1, sc->sc_ucr1);
}
{
u_char buf[32];
int n = q_to_b(&tp->t_outq, buf, 32/*XXX*/);
int i;
for (i = 0; i < n; i++)
bus_space_write_1(iot, ioh, IMXUART_UTXD, buf[i]);
}
splx(s);
return;
stopped:
if (ISSET(sc->sc_ucr1, IMXUART_CR1_TXMPTYEN)) {
CLR(sc->sc_ucr1, IMXUART_CR1_TXMPTYEN);
bus_space_write_2(iot, ioh, IMXUART_UCR1, sc->sc_ucr1);
}
splx(s);
}
开发者ID:ajinkya93,项目名称:OpenBSD,代码行数:54,代码来源:imxuart.c
示例4: fms_reset_codec
/* Cold Reset */
static int
fms_reset_codec(void *addr)
{
struct fms_softc *sc;
sc = addr;
bus_space_write_2(sc->sc_iot, sc->sc_ioh, FM_CODEC_CTL, 0x0020);
delay(2);
bus_space_write_2(sc->sc_iot, sc->sc_ioh, FM_CODEC_CTL, 0x0000);
delay(1);
return 0;
}
开发者ID:RyanLucchese,项目名称:rumpkernel-netbsd-src,代码行数:13,代码来源:fms.c
示例5: depca_isa_probe
int
depca_isa_probe(struct device *parent, struct cfdata *match, void *aux)
{
struct isa_attach_args *ia = aux;
bus_space_tag_t iot = ia->ia_iot;
bus_space_handle_t ioh;
bus_space_handle_t memh;
int rv = 0;
/* Disallow impossible i/o address. */
if (ia->ia_iobase != 0x200 && ia->ia_iobase != 0x300)
return (0);
/* Map i/o space. */
if (bus_space_map(iot, ia->ia_iobase, 16, 0, &ioh))
return 0;
if (ia->ia_maddr == MADDRUNK ||
(ia->ia_msize != 32*1024 && ia->ia_msize != 64*1024))
goto bad;
/* Map card RAM. */
if (bus_space_map(ia->ia_memt, ia->ia_maddr, ia->ia_msize, 0, &memh))
goto bad;
/* Just needed to check mapability; don't need it anymore. */
bus_space_unmap(ia->ia_memt, memh, ia->ia_msize);
/* Stop the LANCE chip and put it in a known state. */
bus_space_write_2(iot, ioh, DEPCA_RAP, LE_CSR0);
bus_space_write_2(iot, ioh, DEPCA_RDP, LE_C0_STOP);
delay(100);
bus_space_write_2(iot, ioh, DEPCA_RAP, LE_CSR0);
if (bus_space_read_2(iot, ioh, DEPCA_RDP) != LE_C0_STOP)
goto bad;
bus_space_write_2(iot, ioh, DEPCA_RAP, LE_CSR3);
bus_space_write_2(iot, ioh, DEPCA_RDP, LE_C3_ACON);
bus_space_write_1(iot, ioh, DEPCA_CSR, DEPCA_CSR_DUM);
if (depca_readprom(iot, ioh, NULL))
goto bad;
ia->ia_iosize = 16;
rv = 1;
bad:
bus_space_unmap(iot, ioh, 16);
return (rv);
}
开发者ID:MarginC,项目名称:kame,代码行数:52,代码来源:depca_isa.c
示例6: geodesc_attach
void
geodesc_attach(struct device *parent, struct device *self, void *aux)
{
struct geodesc_softc *sc = (void *) self;
struct pci_attach_args *pa = aux;
uint16_t cnfg, cba;
uint8_t sts, rev, iid;
pcireg_t reg;
extern void (*cpuresetfn)(void);
reg = pci_conf_read(pa->pa_pc, pa->pa_tag, SC1100_F5_SCRATCHPAD);
sc->sc_iot = pa->pa_iot;
if (reg == 0 ||
bus_space_map(sc->sc_iot, reg, 64, 0, &sc->sc_ioh)) {
printf(": unable to map registers at 0x%x\n", reg);
return;
}
cba = bus_space_read_2(sc->sc_iot, sc->sc_ioh, GCB_CBA);
if (cba != reg) {
printf(": cba mismatch: cba 0x%x != reg 0x%x\n", cba, reg);
bus_space_unmap(sc->sc_iot, sc->sc_ioh, 64);
return;
}
sts = bus_space_read_1(sc->sc_iot, sc->sc_ioh, GCB_WDSTS);
cnfg = bus_space_read_2(sc->sc_iot, sc->sc_ioh, GCB_WDCNFG);
iid = bus_space_read_1(sc->sc_iot, sc->sc_ioh, GCB_IID);
rev = bus_space_read_1(sc->sc_iot, sc->sc_ioh, GCB_REV);
printf(": iid %d revision %d wdstatus %b\n", iid, rev, sts, WDSTSBITS);
#ifndef SMALL_KERNEL
/* setup and register watchdog */
bus_space_write_2(sc->sc_iot, sc->sc_ioh, GCB_WDTO, 0);
sts |= WDOVF_CLEAR;
bus_space_write_1(sc->sc_iot, sc->sc_ioh, GCB_WDSTS, sts);
cnfg &= ~WDCNFG_MASK;
cnfg |= WDTYPE1_RESET|WDPRES_DIV_512;
bus_space_write_2(sc->sc_iot, sc->sc_ioh, GCB_WDCNFG, cnfg);
wdog_register(sc, geodesc_wdogctl_cb);
#endif /* SMALL_KERNEL */
#ifdef __HAVE_TIMECOUNTER
bus_space_write_4(sc->sc_iot, sc->sc_ioh, GCB_TSCNFG, TSC_ENABLE);
/* Hook into the kern_tc */
geodesc_timecounter.tc_priv = sc;
tc_init(&geodesc_timecounter);
#endif /* __HAVE_TIMECOUNTER */
/* We have a special way to reset the CPU on the SC1100 */
cpuresetfn = sc1100_sysreset;
}
开发者ID:alenichev,项目名称:openbsd-kernel,代码行数:52,代码来源:geodesc.c
示例7: sf256pcpr_write_bit
void
sf256pcpr_write_bit(bus_space_tag_t iot, bus_space_handle_t ioh,
bus_size_t off, int bit)
{
u_int16_t data, wren;
wren = FM_IO_GPIO_ALL | FM_IO_GPIO_IN(FM_IO_PIN3) | PCPR_WREN_ON;
data = bit ? PCPR_DATA_ON : PCPR_DATA_OFF;
bus_space_write_2(iot, ioh, off, PCPR_CLOCK_OFF | wren | data);
bus_space_write_2(iot, ioh, off, PCPR_CLOCK_ON | wren | data);
bus_space_write_2(iot, ioh, off, PCPR_CLOCK_OFF | wren | data);
}
开发者ID:repos-holder,项目名称:openbsd-patches,代码行数:13,代码来源:fmsradio.c
示例8: icp_mpr_copy_cmd
void
icp_mpr_copy_cmd(struct icp_softc *icp, struct icp_ccb *ic)
{
bus_space_write_2(icp->icp_dpmemt, icp->icp_dpmemh,
ICP_MPR_IC + ICP_COMM_QUEUE + 0 * ICP_COMM_Q_SZ + ICP_OFFSET,
ICP_DPR_CMD);
bus_space_write_2(icp->icp_dpmemt, icp->icp_dpmemh,
ICP_MPR_IC + ICP_COMM_QUEUE + 0 * ICP_COMM_Q_SZ + ICP_SERV_ID,
ic->ic_service);
bus_space_write_region_4(icp->icp_dpmemt, icp->icp_dpmemh,
ICP_MPR_IC + ICP_DPR_CMD, (u_int32_t *)&ic->ic_cmd,
ic->ic_cmdlen >> 2);
}
开发者ID:ryo,项目名称:netbsd-src,代码行数:14,代码来源:icp_pci.c
示例9: geode_attach
static int
geode_attach(device_t self)
{
u_int32_t reg;
u_int16_t cnfg, cba;
u_int8_t sts, rev, iid;
/*
* The address of the CBA is written to this register
* by the bios, see p161 in data sheet.
*/
reg = pci_read_config(self, SC1100_F5_SCRATCHPAD, 4);
if (reg == 0)
return ENODEV;
/* bus_space_map(sc->sc_iot, reg, 64, 0, &sc->sc_ioh)) */
geode_sc.sc_iot = I386_BUS_SPACE_IO;
geode_sc.sc_ioh = reg;
cba = bus_space_read_2(geode_sc.sc_iot, geode_sc.sc_ioh, GCB_CBA);
if (cba != reg) {
kprintf("Geode LX: cba mismatch: cba 0x%x != reg 0x%x\n", cba, reg);
return ENODEV;
}
/* outl(cba + 0x0d, 2); ??? */
sts = bus_space_read_1(geode_sc.sc_iot, geode_sc.sc_ioh, GCB_WDSTS);
cnfg = bus_space_read_2(geode_sc.sc_iot, geode_sc.sc_ioh, GCB_WDCNFG);
iid = bus_space_read_1(geode_sc.sc_iot, geode_sc.sc_ioh, GCB_IID);
rev = bus_space_read_1(geode_sc.sc_iot, geode_sc.sc_ioh, GCB_REV);
#define WDSTSBITS "\20\x04WDRST\x03WDSMI\x02WDINT\x01WDOVF"
kprintf("Geode LX: iid %d revision %d wdstatus %b\n", iid, rev, sts, WDSTSBITS);
/* enable timer */
bus_space_write_4(geode_sc.sc_iot, geode_sc.sc_iot, GCB_TSCNFG, TSC_ENABLE);
cputimer_register(&geode_timer);
cputimer_select(&geode_timer, 0);
/* enable watchdog and configure */
bus_space_write_2(geode_sc.sc_iot, geode_sc.sc_ioh, GCB_WDTO, 0);
sts |= WDOVF_CLEAR;
bus_space_write_1(geode_sc.sc_iot, geode_sc.sc_ioh, GCB_WDSTS, sts);
cnfg &= ~WDCNFG_MASK;
cnfg |= WDTYPE1_RESET | WDPRES_DIV_512;
bus_space_write_2(geode_sc.sc_iot, geode_sc.sc_ioh, GCB_WDCNFG, cnfg);
wdog_register(&geode_wdog);
return 0;
}
开发者ID:mihaicarabas,项目名称:dragonfly,代码行数:49,代码来源:geode.c
示例10: imxuartclose
int
imxuartclose(dev_t dev, int flag, int mode, struct proc *p)
{
int unit = DEVUNIT(dev);
struct imxuart_softc *sc = imxuart_cd.cd_devs[unit];
bus_space_tag_t iot = sc->sc_iot;
bus_space_handle_t ioh = sc->sc_ioh;
struct tty *tp = sc->sc_tty;
int s;
/* XXX This is for cons.c. */
if (!ISSET(tp->t_state, TS_ISOPEN))
return 0;
(*linesw[tp->t_line].l_close)(tp, flag, p);
s = spltty();
if (ISSET(tp->t_state, TS_WOPEN)) {
/* tty device is waiting for carrier; drop dtr then re-raise */
CLR(sc->sc_ucr3, IMXUART_CR3_DSR);
bus_space_write_2(iot, ioh, IMXUART_UCR3, sc->sc_ucr3);
timeout_add(&sc->sc_dtr_tmo, hz * 2);
} else {
/* no one else waiting; turn off the uart */
imxuart_pwroff(sc);
}
CLR(tp->t_state, TS_BUSY | TS_FLUSH);
sc->sc_cua = 0;
splx(s);
ttyclose(tp);
return 0;
}
开发者ID:ajinkya93,项目名称:OpenBSD,代码行数:33,代码来源:imxuart.c
示例11: sun68k_bus_poke
int
sun68k_bus_poke(bus_space_tag_t tag, bus_space_handle_t handle,
bus_size_t offset, size_t size, uint32_t v)
{
int result;
label_t faultbuf;
nofault = &faultbuf;
if (setjmp(&faultbuf))
result = -1;
else {
switch(size) {
case 1:
bus_space_write_1(tag, handle, offset, (uint8_t)v);
break;
case 2:
bus_space_write_2(tag, handle, offset, (uint16_t)v);
break;
case 4:
bus_space_write_4(tag, handle, offset, (uint32_t)v);
break;
default:
panic("_bus_space_poke: bad size");
}
result = 0;
}
nofault = NULL;
return (result);
}
开发者ID:yazshel,项目名称:netbsd-kernel,代码行数:30,代码来源:bus.c
示例12: fms_read_codec
static int
fms_read_codec(void *addr, uint8_t reg, uint16_t *val)
{
struct fms_softc *sc;
int i;
sc = addr;
/* Poll until codec is ready */
for (i = 0; i < TIMO && bus_space_read_2(sc->sc_iot, sc->sc_ioh,
FM_CODEC_CMD) & FM_CODEC_CMD_BUSY; i++)
delay(1);
if (i >= TIMO) {
printf("fms: codec busy\n");
return 1;
}
/* Write register index, read access */
bus_space_write_2(sc->sc_iot, sc->sc_ioh, FM_CODEC_CMD,
reg | FM_CODEC_CMD_READ);
/* Poll until we have valid data */
for (i = 0; i < TIMO && !(bus_space_read_2(sc->sc_iot, sc->sc_ioh,
FM_CODEC_CMD) & FM_CODEC_CMD_VALID); i++)
delay(1);
if (i >= TIMO) {
printf("fms: no data from codec\n");
return 1;
}
/* Read data */
*val = bus_space_read_2(sc->sc_iot, sc->sc_ioh, FM_CODEC_DATA);
return 0;
}
开发者ID:RyanLucchese,项目名称:rumpkernel-netbsd-src,代码行数:33,代码来源:fms.c
示例13: db_bus_write_cmd
void
db_bus_write_cmd(db_expr_t addr, bool have_addr, db_expr_t count,
const char *modif)
{
db_expr_t datum;
bus_space_tag_t iot = &iobus_bs_tag; /* XXX */
bus_space_handle_t ioh;
if (!have_addr)
db_error("target address must be specified");
bus_space_map(iot, addr, 1, 0, &ioh);
while (db_expression(&datum)) {
switch (*modif) {
case 'b':
bus_space_write_1(iot, ioh, 0, datum);
break;
case '\0':
case 'h':
bus_space_write_2(iot, ioh, 0, datum);
break;
default:
db_error("bad modifier");
}
}
bus_space_unmap(iot, ioh, 1);
db_skip_to_eol();
}
开发者ID:krytarowski,项目名称:netbsd-current-src-sys,代码行数:29,代码来源:db_machdep.c
示例14: virtio_write_device_config_2
void
virtio_write_device_config_2(struct virtio_softc *sc,
int index, uint16_t value)
{
bus_space_write_2(sc->sc_iot, sc->sc_ioh,
sc->sc_config_offset + index, value);
}
开发者ID:arroway,项目名称:virtio_DragonFlyBSD,代码行数:7,代码来源:virtio.c
示例15: geode_wdog_reset
static void
geode_wdog_reset(struct geode_wdog_softc *sc)
{
/* set countdown */
bus_space_write_2(sc->sc_gcb_dev->sc_iot, sc->sc_gcb_dev->sc_ioh,
SC1100_GCB_WDTO, sc->sc_countdown);
}
开发者ID:lacombar,项目名称:netbsd-alc,代码行数:7,代码来源:geodewdg.c
示例16: qlw_write
void
qlw_write(struct qlw_softc *sc, bus_size_t offset, u_int16_t value)
{
bus_space_write_2(sc->sc_iot, sc->sc_ioh, offset, value);
bus_space_barrier(sc->sc_iot, sc->sc_ioh, offset, 2,
BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
}
开发者ID:DavidAlphaFox,项目名称:openbsd-kernel,代码行数:7,代码来源:qlw.c
示例17: bppopen
int
bppopen(dev_t dev, int flags, int mode, struct lwp *l)
{
int unit = BPPUNIT(dev);
struct bpp_softc *sc;
struct lsi64854_softc *lsi;
uint16_t irq;
int s;
if (unit >= bpp_cd.cd_ndevs)
return ENXIO;
sc = device_lookup_private(&bpp_cd, unit);
if ((sc->sc_flags & (BPP_OPEN|BPP_XCLUDE)) == (BPP_OPEN|BPP_XCLUDE))
return EBUSY;
lsi = &sc->sc_lsi64854;
/* Set default parameters */
sc->sc_hwcurrent = sc->sc_hwdefault;
s = splbpp();
bpp_setparams(sc, &sc->sc_hwdefault);
splx(s);
/* Enable interrupts */
irq = BPP_ERR_IRQ_EN;
irq |= sc->sc_hwdefault.hw_irq;
bus_space_write_2(lsi->sc_bustag, lsi->sc_regs, L64854_REG_ICR, irq);
return 0;
}
开发者ID:Tommmster,项目名称:netbsd-avr32,代码行数:30,代码来源:bpp.c
示例18: agg_wrcodec
static int
agg_wrcodec(kobj_t obj, void *sc, int regno, u_int32_t data)
{
unsigned t;
struct agg_info *ess = sc;
/* We have to wait for a SAFE time to write addr/data */
for (t = 0; t < 20; t++) {
if ((bus_space_read_1(ess->st, ess->sh, PORT_CODEC_STAT)
& CODEC_STAT_MASK) != CODEC_STAT_PROGLESS)
break;
DELAY(2); /* 20.8us / 13 */
}
if (t == 20) {
/* Timed out. Abort writing. */
device_printf(ess->dev, "agg_wrcodec() PROGLESS timed out.\n");
return -1;
}
bus_space_write_2(ess->st, ess->sh, PORT_CODEC_REG, data);
bus_space_write_1(ess->st, ess->sh, PORT_CODEC_CMD,
CODEC_CMD_WRITE | regno);
return 0;
}
开发者ID:MarginC,项目名称:kame,代码行数:25,代码来源:maestro.c
示例19: pcib_mbus_hw_cfgwrite
static void
pcib_mbus_hw_cfgwrite(struct pcib_mbus_softc *sc, u_int bus, u_int slot,
u_int func, u_int reg, uint32_t data, int bytes)
{
uint32_t addr, ca, cd;
ca = (sc->sc_info->op_type != MV_TYPE_PCI) ?
PCIE_REG_CFG_ADDR : PCI_REG_CFG_ADDR;
cd = (sc->sc_info->op_type != MV_TYPE_PCI) ?
PCIE_REG_CFG_DATA : PCI_REG_CFG_DATA;
addr = PCI_CFG_ENA | PCI_CFG_BUS(bus) | PCI_CFG_DEV(slot) |
PCI_CFG_FUN(func) | PCI_CFG_PCIE_REG(reg);
mtx_lock_spin(&pcicfg_mtx);
bus_space_write_4(sc->sc_bst, sc->sc_bsh, ca, addr);
switch (bytes) {
case 1:
bus_space_write_1(sc->sc_bst, sc->sc_bsh,
cd + (reg & 3), data);
break;
case 2:
bus_space_write_2(sc->sc_bst, sc->sc_bsh,
cd + (reg & 2), htole16(data));
break;
case 4:
bus_space_write_4(sc->sc_bst, sc->sc_bsh,
cd, htole32(data));
break;
}
mtx_unlock_spin(&pcicfg_mtx);
}
开发者ID:DangerDexter,项目名称:FreeBSD-8.0-dyntick,代码行数:32,代码来源:mv_pci.c
示例20: bppintr
int
bppintr(void *arg)
{
struct bpp_softc *sc = arg;
struct lsi64854_softc *lsi = &sc->sc_lsi64854;
uint16_t irq;
/* First handle any possible DMA interrupts */
if (lsi64854_pp_intr((void *)lsi) == -1)
sc->sc_error = 1;
irq = bus_space_read_2(lsi->sc_bustag, lsi->sc_regs, L64854_REG_ICR);
/* Ack all interrupts */
bus_space_write_2(lsi->sc_bustag, lsi->sc_regs, L64854_REG_ICR,
irq | BPP_ALLIRQ);
DPRINTF(("%s: %x\n", __func__, irq));
/* Did our device interrupt? */
if ((irq & BPP_ALLIRQ) == 0)
return 0;
if ((sc->sc_flags & BPP_LOCKED) != 0)
wakeup(sc);
else if ((sc->sc_flags & BPP_WANT) != 0) {
sc->sc_flags &= ~BPP_WANT;
wakeup(sc->sc_buf);
} else {
selnotify(&sc->sc_wsel, 0, 0);
if (sc->sc_asyncproc != NULL)
softint_schedule(sc->sc_sih);
}
return 1;
}
开发者ID:Tommmster,项目名称:netbsd-avr32,代码行数:33,代码来源:bpp.c
注:本文中的bus_space_write_2函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论