这篇教程C++ xenbus_printf函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中xenbus_printf函数的典型用法代码示例。如果您正苦于以下问题:C++ xenbus_printf函数的具体用法?C++ xenbus_printf怎么用?C++ xenbus_printf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了xenbus_printf函数的21个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: shutdown_netfrontvoid shutdown_netfront(struct netfront_dev *dev){ char* err; char *nodename = dev->nodename; char path[strlen(dev->backend) + 1 + 5 + 1]; printk("close network: backend at %s/n",dev->backend); snprintf(path, sizeof(path), "%s/state", dev->backend); err = xenbus_printf(XBT_NIL, nodename, "state", "%u", 5); /* closing */ xenbus_wait_for_value(path, "5", &dev->events); err = xenbus_printf(XBT_NIL, nodename, "state", "%u", 6); xenbus_wait_for_value(path, "6", &dev->events); err = xenbus_printf(XBT_NIL, nodename, "state", "%u", 1); xenbus_wait_for_value(path, "2", &dev->events); xenbus_unwatch_path(XBT_NIL, path); snprintf(path, sizeof(path), "%s/tx-ring-ref", nodename); xenbus_rm(XBT_NIL, path); snprintf(path, sizeof(path), "%s/rx-ring-ref", nodename); xenbus_rm(XBT_NIL, path); snprintf(path, sizeof(path), "%s/event-channel", nodename); xenbus_rm(XBT_NIL, path); snprintf(path, sizeof(path), "%s/request-rx-copy", nodename); xenbus_rm(XBT_NIL, path); free_netfront(dev);}
开发者ID:jinxuan,项目名称:vncos,代码行数:33,
示例2: shutdown_kbdfrontvoid shutdown_kbdfront(struct kbdfront_dev *dev){ char* err; char *nodename = dev->nodename; char path[strlen(dev->backend) + 1 + 5 + 1]; printk("close kbd: backend at %s/n",dev->backend); snprintf(path, sizeof(path), "%s/state", dev->backend); err = xenbus_printf(XBT_NIL, nodename, "state", "%u", 5); /* closing */ xenbus_wait_for_value(path, "5", &dev->events); err = xenbus_printf(XBT_NIL, nodename, "state", "%u", 6); xenbus_wait_for_value(path, "6", &dev->events); err = xenbus_printf(XBT_NIL, nodename, "state", "%u", 1); // does not work yet. //xenbus_wait_for_value(path, "2", &dev->events); xenbus_unwatch_path(XBT_NIL, path); snprintf(path, sizeof(path), "%s/page-ref", nodename); xenbus_rm(XBT_NIL, path); snprintf(path, sizeof(path), "%s/event-channel", nodename); xenbus_rm(XBT_NIL, path); snprintf(path, sizeof(path), "%s/request-abs-pointer", nodename); xenbus_rm(XBT_NIL, path); free_kbdfront(dev);}
开发者ID:amodj,项目名称:Utopia,代码行数:31,
示例3: svm_grant_ringstatic int svm_grant_ring(int arg){ int ret, gnt_ref; struct xenbus_device dev; printk(KERN_ALERT "[svm]: arg is:%d/n", arg); dev.otherend_id = arg; if(NULL == vaddr){ printk(KERN_ALERT "[svm]: wrong vaddr./n"); return -1; } gnt_ref = xenbus_grant_ring(&dev, virt_to_mfn(vaddr)); if(gnt_ref < 0){ printk(KERN_ALERT "[svm]: grant ring failed!/n"); return -1; } xenbus_printf(XBT_NIL, "/vrv/svm/grant_table", "com", "pos:0 len:0"); xenbus_printf(XBT_NIL, "/vrv/svm", "grant_table", "%d", gnt_ref); printk(KERN_ALERT "[svm]: grant table to %d, gnt_ref is:%d./n", dev.otherend_id, gnt_ref); return 0;}
开发者ID:xiaoyuyang,项目名称:xenbus,代码行数:26,
示例4: shutdown_fbfrontvoid shutdown_fbfront(struct fbfront_dev *dev){ char* err; char *nodename = dev->nodename; char path[strlen(dev->backend) + 1 + 5 + 1]; printk("close fb: backend at %s/n",dev->backend); snprintf(path, sizeof(path), "%s/state", dev->backend); err = xenbus_printf(XBT_NIL, nodename, "state", "%u", 5); /* closing */ xenbus_wait_for_value(path, "5", &dev->events); err = xenbus_printf(XBT_NIL, nodename, "state", "%u", 6); xenbus_wait_for_value(path, "6", &dev->events); err = xenbus_printf(XBT_NIL, nodename, "state", "%u", 1); // does not work yet //xenbus_wait_for_value(path, "2", &dev->events); xenbus_unwatch_path(XBT_NIL, path); snprintf(path, sizeof(path), "%s/page-ref", nodename); xenbus_rm(XBT_NIL, path); snprintf(path, sizeof(path), "%s/event-channel", nodename); xenbus_rm(XBT_NIL, path); snprintf(path, sizeof(path), "%s/protocol", nodename); xenbus_rm(XBT_NIL, path); snprintf(path, sizeof(path), "%s/feature-update", nodename); xenbus_rm(XBT_NIL, path); unbind_evtchn(dev->evtchn); free_fbfront(dev);}
开发者ID:amodj,项目名称:Utopia,代码行数:35,
示例5: pcifront_publish_infostatic int pcifront_publish_info(struct pcifront_device *pdev){ int err = 0; struct xenbus_transaction trans; err = xenbus_grant_ring(pdev->xdev, virt_to_mfn(pdev->sh_info)); if (err < 0) goto out; pdev->gnt_ref = err; err = xenbus_alloc_evtchn(pdev->xdev, &pdev->evtchn); if (err) goto out; bind_caller_port_to_irqhandler(pdev->evtchn, pcifront_handler_aer, IRQF_SAMPLE_RANDOM, "pcifront", pdev); do_publish: err = xenbus_transaction_start(&trans); if (err) { xenbus_dev_fatal(pdev->xdev, err, "Error writing configuration for backend " "(start transaction)"); goto out; } err = xenbus_printf(trans, pdev->xdev->nodename, "pci-op-ref", "%u", pdev->gnt_ref); if (!err) err = xenbus_printf(trans, pdev->xdev->nodename, "event-channel", "%u", pdev->evtchn); if (!err) err = xenbus_printf(trans, pdev->xdev->nodename, "magic", XEN_PCI_MAGIC); if (err) { xenbus_transaction_end(trans, 1); xenbus_dev_fatal(pdev->xdev, err, "Error writing configuration for backend"); goto out; } else { err = xenbus_transaction_end(trans, 0); if (err == -EAGAIN) goto do_publish; else if (err) { xenbus_dev_fatal(pdev->xdev, err, "Error completing transaction " "for backend"); goto out; } } xenbus_switch_state(pdev->xdev, XenbusStateInitialised); dev_dbg(&pdev->xdev->dev, "publishing successful!/n"); out: return err;}
开发者ID:AsadRaza,项目名称:OCTEON-Linux,代码行数:60,
示例6: talk_to_backendstatic int talk_to_backend(struct xenbus_device *dev, struct usbfront_info *info){ const char *message; struct xenbus_transaction xbt; int err; err = setup_rings(dev, info); if (err) goto out;again: err = xenbus_transaction_start(&xbt); if (err) { xenbus_dev_fatal(dev, err, "starting transaction"); goto destroy_ring; } err = xenbus_printf(xbt, dev->nodename, "urb-ring-ref", "%u", info->urb_ring_ref); if (err) { message = "writing urb-ring-ref"; goto abort_transaction; } err = xenbus_printf(xbt, dev->nodename, "conn-ring-ref", "%u", info->conn_ring_ref); if (err) { message = "writing conn-ring-ref"; goto abort_transaction; } err = xenbus_printf(xbt, dev->nodename, "event-channel", "%u", irq_to_evtchn_port(info->irq)); if (err) { message = "writing event-channel"; goto abort_transaction; } err = xenbus_transaction_end(xbt, 0); if (err) { if (err == -EAGAIN) goto again; xenbus_dev_fatal(dev, err, "completing transaction"); goto destroy_ring; } return 0;abort_transaction: xenbus_transaction_end(xbt, 1); xenbus_dev_fatal(dev, err, "%s", message);destroy_ring: destroy_rings(info);out: return err;}
开发者ID:zhoupeng,项目名称:spice4xen,代码行数:59,
示例7: talk_to_ixpback/* Common code used when first setting up, and when resuming. */static int talk_to_ixpback(struct xenbus_device *dev, struct ixpfront_info *info){ const char *message = NULL; struct xenbus_transaction xbt; int err; /* Create shared ring, alloc event channel. */ err = setup_ixpring(dev, info); if (err) goto out;again: err = xenbus_transaction_start(&xbt); if (err) { xenbus_dev_fatal(dev, err, "starting transaction"); goto destroy_ixpring; } err = xenbus_printf(xbt, dev->nodename, "ring-ref", "%u", info->ring_ref); if (err) { message = "writing ring-ref"; goto abort_transaction; } err = xenbus_printf(xbt, dev->nodename, "event-channel", "%u", info->evtchn); if (err) { message = "writing event-channel"; goto abort_transaction; } err = xenbus_printf(xbt, dev->nodename, "protocol", "%s", XEN_IO_PROTO_ABI_NATIVE); if (err) { message = "writing protocol"; goto abort_transaction; } err = xenbus_transaction_end(xbt, 0); if (err) { if (err == -EAGAIN) goto again; xenbus_dev_fatal(dev, err, "completing transaction"); goto destroy_ixpring; } xenbus_switch_state(dev, XenbusStateInitialised); return 0; abort_transaction: xenbus_transaction_end(xbt, 1); if (message) xenbus_dev_fatal(dev, err, "%s", message); destroy_ixpring: ixp_free(info, 0); out: return err;}
开发者ID:kong123456,项目名称:tolapai,代码行数:60,
示例8: xen_pcibk_publish_pci_rootstatic int xen_pcibk_publish_pci_root(struct xen_pcibk_device *pdev, unsigned int domain, unsigned int bus){ unsigned int d, b; int i, root_num, len, err; char str[64]; dev_dbg(&pdev->xdev->dev, "Publishing pci roots/n"); err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, "root_num", "%d", &root_num); if (err == 0 || err == -ENOENT) root_num = 0; else if (err < 0) goto out; /* Verify that we haven't already published this pci root */ for (i = 0; i < root_num; i++) { len = snprintf(str, sizeof(str), "root-%d", i); if (unlikely(len >= (sizeof(str) - 1))) { err = -ENOMEM; goto out; } err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, str, "%x:%x", &d, &b); if (err < 0) goto out; if (err != 2) { err = -EINVAL; goto out; } if (d == domain && b == bus) { err = 0; goto out; } } len = snprintf(str, sizeof(str), "root-%d", root_num); if (unlikely(len >= (sizeof(str) - 1))) { err = -ENOMEM; goto out; } dev_dbg(&pdev->xdev->dev, "writing root %d at %04x:%02x/n", root_num, domain, bus); err = xenbus_printf(XBT_NIL, pdev->xdev->nodename, str, "%04x:%02x", domain, bus); if (err) goto out; err = xenbus_printf(XBT_NIL, pdev->xdev->nodename, "root_num", "%d", (root_num + 1));out: return err;}
开发者ID:454053205,项目名称:linux,代码行数:59,
示例9: connect/** * Write the physical details regarding the block device to the store, and * switch to Connected state. */static void connect(struct backend_info *be){ xenbus_transaction_t xbt; int err; struct xenbus_device *dev = be->dev; DPRINTK("%s", dev->otherend); /* Supply the information about the device the frontend needs */again: err = xenbus_transaction_start(&xbt); if (err) { xenbus_dev_fatal(dev, err, "starting transaction"); return; } err = xenbus_printf(xbt, dev->nodename, "sectors", "%lu", vbd_size(&be->blkif->vbd)); if (err) { xenbus_dev_fatal(dev, err, "writing %s/sectors", dev->nodename); goto abort; } /* FIXME: use a typename instead */ err = xenbus_printf(xbt, dev->nodename, "info", "%u", vbd_info(&be->blkif->vbd)); if (err) { xenbus_dev_fatal(dev, err, "writing %s/info", dev->nodename); goto abort; } err = xenbus_printf(xbt, dev->nodename, "sector-size", "%lu", vbd_secsize(&be->blkif->vbd)); if (err) { xenbus_dev_fatal(dev, err, "writing %s/sector-size", dev->nodename); goto abort; } err = xenbus_transaction_end(xbt, 0); if (err == -EAGAIN) goto again; if (err) xenbus_dev_fatal(dev, err, "ending transaction"); err = xenbus_switch_state(dev, XenbusStateConnected); if (err) xenbus_dev_fatal(dev, err, "switching to Connected state", dev->nodename); return; abort: xenbus_transaction_end(xbt, 1);}
开发者ID:BackupTheBerlios,项目名称:arp2-svn,代码行数:60,
示例10: publish_frontend_namestatic int publish_frontend_name(struct xenbus_device *dev){ struct xenbus_transaction tr; int err; /* Publish the name of the frontend driver */ do { err = xenbus_transaction_start(&tr); if (err != 0) { EPRINTK("%s: transaction start failed/n", __FUNCTION__); return err; } err = xenbus_printf(tr, dev->nodename, "accel-frontend", "%s", frontend_name); if (err != 0) { EPRINTK("%s: xenbus_printf failed/n", __FUNCTION__); xenbus_transaction_end(tr, 1); return err; } err = xenbus_transaction_end(tr, 0); } while (err == -EAGAIN); if (err != 0) { EPRINTK("failed to end frontend name transaction/n"); return err; } return 0;}
开发者ID:zhoupeng,项目名称:spice4xen,代码行数:28,
示例11: xpv_attachstatic intxpv_attach(dev_info_t *dip, ddi_attach_cmd_t cmd){ if (cmd != DDI_ATTACH) return (DDI_FAILURE); if (ddi_create_minor_node(dip, ddi_get_name(dip), S_IFCHR, ddi_get_instance(dip), DDI_PSEUDO, 0) != DDI_SUCCESS) return (DDI_FAILURE); xpv_dip = dip; if (xpv_drv_init() != 0) return (DDI_FAILURE); ddi_report_dev(dip); /* * If the memscrubber attempts to scrub the pages we hand to Xen, * the domain will panic. */ memscrub_disable(); /* * Report our version to dom0. */ if (xenbus_printf(XBT_NULL, "guest/xpv", "version", "%d", HVMPV_XPV_VERS)) cmn_err(CE_WARN, "xpv: couldn't write version/n"); return (DDI_SUCCESS);}
开发者ID:bahamas10,项目名称:openzfs,代码行数:32,
示例12: sysrq_handlerstatic void sysrq_handler(struct xenbus_watch *watch, const char *path, const char *token){ char sysrq_key = '/0'; struct xenbus_transaction xbt; int err; again: err = xenbus_transaction_start(&xbt); if (err) return; err = xenbus_scanf(xbt, "control", "sysrq", "%c", &sysrq_key); if (err < 0) { /* * The Xenstore watch fires directly after registering it and * after a suspend/resume cycle. So ENOENT is no error but * might happen in those cases. */ if (err != -ENOENT) pr_err("Error %d reading sysrq code in control/sysrq/n", err); xenbus_transaction_end(xbt, 1); return; } if (sysrq_key != '/0') xenbus_printf(xbt, "control", "sysrq", "%c", '/0'); err = xenbus_transaction_end(xbt, 0); if (err == -EAGAIN) goto again; if (sysrq_key != '/0') handle_sysrq(sysrq_key);}
开发者ID:mdamt,项目名称:linux,代码行数:35,
示例13: setup_shutdown_watcherstatic int setup_shutdown_watcher(void){ int err; int idx;#define FEATURE_PATH_SIZE (SHUTDOWN_CMD_SIZE + sizeof("feature-")) char node[FEATURE_PATH_SIZE]; err = register_xenbus_watch(&shutdown_watch); if (err) { pr_err("Failed to set shutdown watcher/n"); return err; }#ifdef CONFIG_MAGIC_SYSRQ err = register_xenbus_watch(&sysrq_watch); if (err) { pr_err("Failed to set sysrq watcher/n"); return err; }#endif for (idx = 0; idx < ARRAY_SIZE(shutdown_handlers); idx++) { if (!shutdown_handlers[idx].flag) continue; snprintf(node, FEATURE_PATH_SIZE, "feature-%s", shutdown_handlers[idx].command); xenbus_printf(XBT_NIL, "control", node, "%u", 1); } return 0;}
开发者ID:mdamt,项目名称:linux,代码行数:32,
示例14: XenLowerInterfaceVersionULONGXenLowerInterfaceVersion( PXEN_LOWER XenLower){ NTSTATUS status; PCHAR vstr; int version; vstr = XenLowerReadXenstoreValue(XenLower->BackendPath, "version"); if (vstr == NULL) { TraceError((__FUNCTION__/ ": XenLowerReadXenstoreValue() failed to return the vusb version./n")); return 0; } sscanf_s(vstr, "%d", &version); XmFreeMemory(vstr); // Need to now write the version we support to the frontend status = xenbus_printf(XBT_NIL, XenLower->FrontendPath, "version", "%d", XEN_LOWER_INTERFACE_VERSION); if (!NT_SUCCESS(status)) { TraceError((__FUNCTION__/ ": xenbus_printf(frontend/version) failed./n")); return 0; } TraceInfo((__FUNCTION__ ": Read backend version: %d - Wrote frontend version: %d/n", version, XEN_LOWER_INTERFACE_VERSION)); return (ULONG)version;}
开发者ID:OpenXT,项目名称:xc-vusb,代码行数:35,
示例15: xenkbd_backend_changedstatic void xenkbd_backend_changed(struct xenbus_device *dev, enum xenbus_state backend_state){ struct xenkbd_info *info = dev_get_drvdata(&dev->dev); int ret, val; switch (backend_state) { case XenbusStateInitialising: case XenbusStateInitialised: case XenbusStateReconfiguring: case XenbusStateReconfigured: case XenbusStateUnknown: break; case XenbusStateInitWait:InitWait: ret = xenbus_scanf(XBT_NIL, info->xbdev->otherend, "feature-abs-pointer", "%d", &val); if (ret < 0) val = 0; if (val) { ret = xenbus_printf(XBT_NIL, info->xbdev->nodename, "request-abs-pointer", "1"); if (ret) pr_warning("xenkbd: can't request abs-pointer"); } xenbus_switch_state(dev, XenbusStateConnected); break; case XenbusStateConnected: /* * Work around xenbus race condition: If backend goes * through InitWait to Connected fast enough, we can * get Connected twice here. */ if (dev->state != XenbusStateConnected) goto InitWait; /* no InitWait seen yet, fudge it */ /* Set input abs params to match backend screen res */ if (xenbus_scanf(XBT_NIL, info->xbdev->otherend, "width", "%d", &val) > 0) input_set_abs_params(info->ptr, ABS_X, 0, val, 0, 0); if (xenbus_scanf(XBT_NIL, info->xbdev->otherend, "height", "%d", &val) > 0) input_set_abs_params(info->ptr, ABS_Y, 0, val, 0, 0); break; case XenbusStateClosed: if (dev->state == XenbusStateClosed) break; /* Missed the backend's CLOSING state -- fallthrough */ case XenbusStateClosing: xenbus_frontend_closed(dev); break; }}
开发者ID:168519,项目名称:linux,代码行数:59,
示例16: netback_probe/** * Entry point to this code when a new device is created. Allocate the basic * structures, and watch the store waiting for the hotplug scripts to tell us * the device's handle. Switch to InitWait. */static int netback_probe(struct xenbus_device *dev, const struct xenbus_device_id *id){ const char *message; xenbus_transaction_t xbt; int err; struct backend_info *be = kzalloc(sizeof(struct backend_info), GFP_KERNEL); if (!be) { xenbus_dev_fatal(dev, -ENOMEM, "allocating backend structure"); return -ENOMEM; } be->dev = dev; dev->data = be; err = xenbus_watch_path2(dev, dev->nodename, "handle", &be->backend_watch, backend_changed); if (err) goto fail; do { err = xenbus_transaction_start(&xbt); if (err) { xenbus_dev_fatal(dev, err, "starting transaction"); goto fail; } err = xenbus_printf(xbt, dev->nodename, "feature-sg", "%d", 1); if (err) { message = "writing feature-sg"; goto abort_transaction; } err = xenbus_transaction_end(xbt, 0); } while (err == -EAGAIN); if (err) { xenbus_dev_fatal(dev, err, "completing transaction"); goto fail; } err = xenbus_switch_state(dev, XenbusStateInitWait); if (err) { goto fail; } return 0;abort_transaction: xenbus_transaction_end(xbt, 1); xenbus_dev_fatal(dev, err, "%s", message);fail: DPRINTK("failed"); netback_remove(dev); return err;}
开发者ID:BackupTheBerlios,项目名称:arp2-svn,代码行数:63,
示例17: publish_xenbusstatic int publish_xenbus(struct tpmfront_dev* dev) { xenbus_transaction_t xbt; int retry; char* err; /* Write the grant reference and event channel to xenstore */again: if((err = xenbus_transaction_start(&xbt))) { TPMFRONT_ERR("Unable to start xenbus transaction, error was %s/n", err); free(err); return -1; } if((err = xenbus_printf(xbt, dev->nodename, "ring-ref", "%u", (unsigned int) dev->ring_ref))) { TPMFRONT_ERR("Unable to write %s/ring-ref, error was %s/n", dev->nodename, err); free(err); goto abort_transaction; } if((err = xenbus_printf(xbt, dev->nodename, "event-channel", "%u", (unsigned int) dev->evtchn))) { TPMFRONT_ERR("Unable to write %s/event-channel, error was %s/n", dev->nodename, err); free(err); goto abort_transaction; } if((err = xenbus_transaction_end(xbt, 0, &retry))) { TPMFRONT_ERR("Unable to complete xenbus transaction, error was %s/n", err); free(err); return -1; } if(retry) { goto again; } return 0;abort_transaction: if((err = xenbus_transaction_end(xbt, 1, &retry))) { free(err); } return -1;}
开发者ID:dzan,项目名称:xenOnArm,代码行数:40,
示例18: BalloonGetTopPagestatic ULONGBalloonGetTopPage( VOID ){ PHYSICAL_MEMORY_RANGE *Range; PHYSICAL_ADDRESS TopAddress; ULONG Index; Range = MmGetPhysicalMemoryRanges(); TopAddress.QuadPart = 0ull; for (Index = 0; Range[Index].BaseAddress.QuadPart != 0 || Range[Index].NumberOfBytes.QuadPart != 0; Index++) { PHYSICAL_ADDRESS EndAddress; CHAR Key[32]; EndAddress.QuadPart = Range[Index].BaseAddress.QuadPart + Range[Index].NumberOfBytes.QuadPart; TraceInfo(("PHYSICAL MEMORY: RANGE[%u] %08x.%08x - %08x.%08x/n", Index, Range[Index].BaseAddress.HighPart, Range[Index].BaseAddress.LowPart, EndAddress.HighPart, EndAddress.LowPart)); (VOID) Xmsnprintf(Key, sizeof (Key), "data/physical-memory/range%u", Index); (VOID) xenbus_printf(XBT_NIL, Key, "base", "%08x.%08x", Range[Index].BaseAddress.HighPart, Range[Index].BaseAddress.LowPart); (VOID) xenbus_printf(XBT_NIL, Key, "end", "%08x.%08x", EndAddress.HighPart, EndAddress.LowPart); if (EndAddress.QuadPart > TopAddress.QuadPart) TopAddress.QuadPart = EndAddress.QuadPart; } TraceNotice(("PHYSICAL MEMORY: TOP = %08x.%08x/n", TopAddress.HighPart, TopAddress.LowPart)); return (ULONG)(TopAddress.QuadPart >> PAGE_SHIFT);}
开发者ID:OpenXT,项目名称:xc-windows,代码行数:40,
示例19: xen_blkbk_discardstatic void xen_blkbk_discard(struct xenbus_transaction xbt, struct backend_info *be){ struct xenbus_device *dev = be->dev; struct xen_blkif *blkif = be->blkif; int err; int state = 0; struct block_device *bdev = be->blkif->vbd.bdev; struct request_queue *q = bdev_get_queue(bdev); if (blk_queue_discard(q)) { err = xenbus_printf(xbt, dev->nodename, "discard-granularity", "%u", q->limits.discard_granularity); if (err) { dev_warn(&dev->dev, "writing discard-granularity (%d)", err); return; } err = xenbus_printf(xbt, dev->nodename, "discard-alignment", "%u", q->limits.discard_alignment); if (err) { dev_warn(&dev->dev, "writing discard-alignment (%d)", err); return; } state = 1; /* Optional. */ err = xenbus_printf(xbt, dev->nodename, "discard-secure", "%d", blkif->vbd.discard_secure); if (err) { dev_warn(&dev->dev, "writing discard-secure (%d)", err); return; } } err = xenbus_printf(xbt, dev->nodename, "feature-discard", "%d", state); if (err) dev_warn(&dev->dev, "writing feature-discard (%d)", err);}
开发者ID:AbdulrahmanAmir,项目名称:Dorimanx-LG-G2-D802-Kernel,代码行数:39,
示例20: xen_blkbk_barrierint xen_blkbk_barrier(struct xenbus_transaction xbt, struct backend_info *be, int state){ struct xenbus_device *dev = be->dev; int err; err = xenbus_printf(xbt, dev->nodename, "feature-barrier", "%d", state); if (err) dev_warn(&dev->dev, "writing feature-barrier (%d)", err); return err;}
开发者ID:AbdulrahmanAmir,项目名称:Dorimanx-LG-G2-D802-Kernel,代码行数:13,
示例21: xen_blkbk_flush_diskcacheint xen_blkbk_flush_diskcache(struct xenbus_transaction xbt, struct backend_info *be, int state){ struct xenbus_device *dev = be->dev; int err; err = xenbus_printf(xbt, dev->nodename, "feature-flush-cache", "%d", state); if (err) xenbus_dev_fatal(dev, err, "writing feature-flush-cache"); return err;}
开发者ID:jthatch12,项目名称:STi,代码行数:13,
注:本文中的xenbus_printf函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ xenbus_read函数代码示例 C++ xenbus_dev_fatal函数代码示例 |