当前位置: 首页>>代码示例>>C++>>正文


C++ read_lock_irqsave函数代码示例

本文整理汇总了C++中read_lock_irqsave函数的典型用法代码示例。如果您正苦于以下问题:C++ read_lock_irqsave函数的具体用法?C++ read_lock_irqsave怎么用?C++ read_lock_irqsave使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了read_lock_irqsave函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: zfcp_erp_wakeup

static void zfcp_erp_wakeup(struct zfcp_adapter *adapter)
{
	unsigned long flags;

	read_lock_irqsave(&zfcp_data.config_lock, flags);
	read_lock(&adapter->erp_lock);
	if (list_empty(&adapter->erp_ready_head) &&
	    list_empty(&adapter->erp_running_head)) {
			atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_PENDING,
					  &adapter->status);
			wake_up(&adapter->erp_done_wqh);
	}
	read_unlock(&adapter->erp_lock);
	read_unlock_irqrestore(&zfcp_data.config_lock, flags);
}
开发者ID:laudarch,项目名称:simcom-linux-kernel,代码行数:15,代码来源:zfcp_erp.c

示例2: adf_interface_modelist

/**
 * adf_interface_modelist - get interface's modelist
 *
 * @intf: the interface
 * @modelist: storage for the modelist (optional)
 * @n_modes: length of @modelist
 *
 * If @modelist is not NULL, adf_interface_modelist() will copy up to @n_modes
 * modelist entries into @modelist.
 *
 * Returns the length of the modelist.
 */
size_t adf_interface_modelist(struct adf_interface *intf,
                              struct drm_mode_modeinfo *modelist, size_t n_modes)
{
    unsigned long flags;
    size_t retval;

    read_lock_irqsave(&intf->hotplug_modelist_lock, flags);
    if (modelist)
        memcpy(modelist, intf->modelist, sizeof(modelist[0]) *
               min(n_modes, intf->n_modes));
    retval = intf->n_modes;
    read_unlock_irqrestore(&intf->hotplug_modelist_lock, flags);

    return retval;
}
开发者ID:shakalaca,项目名称:ASUS_ZenFone_ZE601KL,代码行数:27,代码来源:adf_client.c

示例3: ib_get_cached_lmc

int ib_get_cached_lmc(struct ib_device *device,
		      u8                port_num,
		      u8                *lmc)
{
	unsigned long flags;
	int ret = 0;

	if (!rdma_is_port_valid(device, port_num))
		return -EINVAL;

	read_lock_irqsave(&device->cache.lock, flags);
	*lmc = device->cache.ports[port_num - rdma_start_port(device)].lmc;
	read_unlock_irqrestore(&device->cache.lock, flags);

	return ret;
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:16,代码来源:cache.c

示例4: read_lock_irqsave

/**
 * zfcp_get_unit_by_lun - find unit in unit list of port by FCP LUN
 * @port: pointer to port to search for unit
 * @fcp_lun: FCP LUN to search for
 *
 * Returns: pointer to zfcp_unit or NULL
 */
struct zfcp_unit *zfcp_get_unit_by_lun(struct zfcp_port *port, u64 fcp_lun)
{
	unsigned long flags;
	struct zfcp_unit *unit;

	read_lock_irqsave(&port->unit_list_lock, flags);
	list_for_each_entry(unit, &port->unit_list, list)
		if (unit->fcp_lun == fcp_lun) {
			if (!get_device(&unit->dev))
				unit = NULL;
			read_unlock_irqrestore(&port->unit_list_lock, flags);
			return unit;
		}
	read_unlock_irqrestore(&port->unit_list_lock, flags);
	return NULL;
}
开发者ID:KaZoom,项目名称:buildroot-linux-kernel-m3,代码行数:23,代码来源:zfcp_aux.c

示例5: ib_get_cached_lmc

int ib_get_cached_lmc(struct ib_device *device,
		      u8                port_num,
		      u8                *lmc)
{
	unsigned long flags;
	int ret = 0;

	if (port_num < start_port(device) || port_num > end_port(device))
		return -EINVAL;

	read_lock_irqsave(&device->cache.lock, flags);
	*lmc = device->cache.lmc_cache[port_num - start_port(device)];
	read_unlock_irqrestore(&device->cache.lock, flags);

	return ret;
}
开发者ID:WiseMan787,项目名称:ralink_sdk,代码行数:16,代码来源:cache.c

示例6: mt_sched_debug_show

static int mt_sched_debug_show(struct seq_file *m, void *v)
{
    struct task_struct *g, *p;
    unsigned long flags;
    SEQ_printf(m, "=== mt Scheduler Profiling ===\n");
    SEQ_printf(m,
	    "\nrunnable tasks:\n"
	    "            task   PID   switches  prio"
	    "     exec-runtime         sum-exec        sum-sleep\n"
	    "------------------------------------------------------"
	    "----------------------------------------------------\n");
    read_lock_irqsave(&tasklist_lock, flags);

    do_each_thread(g, p) {
	print_task(m, p);
    } while_each_thread(g, p);
开发者ID:agrloki,项目名称:android_kernel_ousheng_V9,代码行数:16,代码来源:prof_main.c

示例7: ksb_debug_show

static ssize_t ksb_debug_show(struct seq_file *s, void *unused)
{
	unsigned long		flags;
	struct ks_bridge	*ksb = s->private;
	int			i;

	read_lock_irqsave(&ksb->dbg_lock, flags);
	for (i = 0; i < DBG_MAX_MSG; i++) {
		if (i == (ksb->dbg_idx - 1))
			seq_printf(s, "-->%s\n", ksb->dbgbuf[i]);
		else
			seq_printf(s, "%s\n", ksb->dbgbuf[i]);
	}
	read_unlock_irqrestore(&ksb->dbg_lock, flags);

	return 0;
}
开发者ID:QweJay,项目名称:GT-I9505,代码行数:17,代码来源:ks_bridge.c

示例8: hp_sdc_spin_ibf

/*	Care must be taken to only invoke hp_sdc_spin_ibf when 
 *	absolutely needed, or in rarely invoked subroutines.  
 *	Not only does it waste CPU cycles, it also wastes bus cycles. 
 */
static inline void hp_sdc_spin_ibf(void) {
	unsigned long flags;
	rwlock_t *lock;

	lock = &hp_sdc.ibf_lock;

	read_lock_irqsave(lock, flags);
	if (!hp_sdc.ibf) {
		read_unlock_irqrestore(lock, flags);
		return;
	}
	read_unlock(lock);
	write_lock(lock);
	while (sdc_readb(hp_sdc.status_io) & HP_SDC_STATUS_IBF) {};
	hp_sdc.ibf = 0;
	write_unlock_irqrestore(lock, flags);
}
开发者ID:Dronevery,项目名称:JetsonTK1-kernel,代码行数:21,代码来源:hp_sdc.c

示例9: read_lock_irqsave

/**
 * zfcp_get_port_by_wwpn - find port in port list of adapter by wwpn
 * @adapter: pointer to adapter to search for port
 * @wwpn: wwpn to search for
 *
 * Returns: pointer to zfcp_port or NULL
 */
struct zfcp_port *zfcp_get_port_by_wwpn(struct zfcp_adapter *adapter,
					u64 wwpn)
{
	unsigned long flags;
	struct zfcp_port *port;

	read_lock_irqsave(&adapter->port_list_lock, flags);
	list_for_each_entry(port, &adapter->port_list, list)
		if (port->wwpn == wwpn) {
			if (!get_device(&port->dev))
				port = NULL;
			read_unlock_irqrestore(&adapter->port_list_lock, flags);
			return port;
		}
	read_unlock_irqrestore(&adapter->port_list_lock, flags);
	return NULL;
}
开发者ID:791254467,项目名称:u8500_kernel,代码行数:24,代码来源:zfcp_aux.c

示例10: find_safe_buffer

/* determine if a buffer is from our "safe" pool */
static inline struct safe_buffer *
find_safe_buffer(struct dmabounce_device_info *device_info, dma_addr_t safe_dma_addr)
{
	struct safe_buffer *b, *rb = NULL;
	unsigned long flags;

	read_lock_irqsave(&device_info->lock, flags);

	list_for_each_entry(b, &device_info->safe_buffers, node)
		if (b->safe_dma_addr == safe_dma_addr) {
			rb = b;
			break;
		}

	read_unlock_irqrestore(&device_info->lock, flags);
	return rb;
}
开发者ID:CSCLOG,项目名称:beaglebone,代码行数:18,代码来源:dmabounce.c

示例11: mlx4_en_fill_hwtstamps

void mlx4_en_fill_hwtstamps(struct mlx4_en_dev *mdev,
			    struct skb_shared_hwtstamps *hwts,
			    uint64_t timestamp)
{
	panic("Disabled");
#if 0 // AKAROS_PORT
	unsigned long flags;
	uint64_t nsec;

	read_lock_irqsave(&mdev->clock_lock, flags);
	nsec = timecounter_cyc2time(&mdev->clock, timestamp);
	read_unlock_irqrestore(&mdev->clock_lock, flags);

	memset(hwts, 0, sizeof(struct skb_shared_hwtstamps));
	hwts->hwtstamp = ns_to_ktime(nsec);
#endif
}
开发者ID:anandab,项目名称:akaros,代码行数:17,代码来源:en_clock.c

示例12: ib_get_cached_subnet_prefix

int ib_get_cached_subnet_prefix(struct ib_device *device,
				u8                port_num,
				u64              *sn_pfx)
{
	unsigned long flags;
	int p;

	if (!rdma_is_port_valid(device, port_num))
		return -EINVAL;

	p = port_num - rdma_start_port(device);
	read_lock_irqsave(&device->cache.lock, flags);
	*sn_pfx = device->cache.ports[p].subnet_prefix;
	read_unlock_irqrestore(&device->cache.lock, flags);

	return 0;
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:17,代码来源:cache.c

示例13: ehci_hsic_msm_ctrl_events_show

static int ehci_hsic_msm_ctrl_events_show(struct seq_file *s, void *unused)
{
	unsigned long	flags;
	unsigned	i;

	read_lock_irqsave(&dbg_hsic_ctrl.lck, flags);

	i = dbg_hsic_ctrl.idx;
	for (dbg_inc(&i); i != dbg_hsic_ctrl.idx; dbg_inc(&i)) {
		if (!strnlen(dbg_hsic_ctrl.buf[i], DBG_MSG_LEN))
			continue;
		seq_printf(s, "%s\n", dbg_hsic_ctrl.buf[i]);
	}

	read_unlock_irqrestore(&dbg_hsic_ctrl.lck, flags);

	return 0;
}
开发者ID:x942,项目名称:GuardianKernel-Mako,代码行数:18,代码来源:ehci-msm-hsic.c

示例14: pm_send_to_host

int
pm_send_to_host(PM_MESSAGE opcode, void *msg, size_t len)
{
//	FUNCTION_ENTRY;
	int err = 0;
	size_t psize = sizeof(pm_msg_header) + len;
	char *payload;
	unsigned long flags;

	if (pm_scif->con_state != PM_CONNECTED) {
		err = -EINVAL;
		goto error;
	}

	if (!(payload = kmalloc(psize, GFP_ATOMIC))) {
		err = -ENOMEM;
		goto error;
	}
	read_lock_irqsave(&pmscif_send,flags);

	if (atomic_xchg(&epinuse,1) != 0) {
		read_unlock_irqrestore(&pmscif_send,flags);
		kfree(payload);
		return -1;
	}

	((pm_msg_header*)payload)->opcode = opcode;
	((pm_msg_header*)payload)->len = len;
	if (len)
		memcpy((char*)payload + sizeof(pm_msg_header), msg, len);

	//0 for non blocking
	if ((err = scif_send(pm_scif->ep, payload, psize, 0)) < 0) {
		PM_DB("scif_recv failed\n");
	}
	atomic_set(&epinuse,0);
	//for (i = 0; i < psize; i++)
	//	printk(KERN_ALERT" buff: %X\n", payload[i]);
	read_unlock_irqrestore(&pmscif_send,flags);
	kfree(payload);
//	FUNCTION_EXIT;
error:
	return err;
}
开发者ID:NakamuraK,项目名称:mpss-modules,代码行数:44,代码来源:pm_scif.c

示例15: do_gettimeofday

/*
 * This version of gettimeofday has near microsecond resolution.
 */
void do_gettimeofday(struct timeval *tv)
{
	unsigned long flags;
	unsigned long usec, sec;

	read_lock_irqsave(&xtime_lock, flags);
	usec = 0;
	sec = xtime.tv_sec;
	usec += (xtime.tv_nsec / 1000);
	read_unlock_irqrestore(&xtime_lock, flags);

	while (usec >= 1000000) {
		usec -= 1000000;
		sec++;
	}

	tv->tv_sec = sec;
	tv->tv_usec = usec;
}
开发者ID:1x23,项目名称:unifi-gpl,代码行数:22,代码来源:time.c


注:本文中的read_lock_irqsave函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。