您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ALIGN_DOWN函数代码示例

51自学网 2021-06-01 19:34:32
  C++
这篇教程C++ ALIGN_DOWN函数代码示例写得很实用,希望能帮到您。

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

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

示例1: VirtualAllocPhys

SYSCALL vm_addr VirtualAllocPhys (vm_addr addr, ssize_t len, bits32_t flags, vm_addr paddr){    struct Segment *seg;    struct Process *current;    current = GetCurrentProcess();    addr = ALIGN_DOWN (addr, PAGE_SIZE);    paddr = ALIGN_DOWN (paddr, PAGE_SIZE);    len = ALIGN_UP (len, PAGE_SIZE);    flags = (flags & ~VM_SYSTEM_MASK) | MEM_PHYS;    if (!(current->flags & PROCF_ALLOW_IO))        return (vm_addr)NULL;    if (PmapSupportsCachePolicy (flags) == -1)        return (vm_addr)NULL;    DisablePreemption();    if (EnoughSegments() == FALSE)        ReclaimSegments();            if ((seg = SegmentAlloc (paddr, len, flags)) == NULL)        return (vm_addr)NULL;      return seg->base;}
开发者ID:Marvenlee,项目名称:cheviot,代码行数:29,


示例2: km_unmap

/** Unmap a piece of virtual address space. * * @param vaddr		Virtual address to be unmapped. May be unaligned, but *			it must a value previously returned by km_map(). * @param size		Size of area starting at vaddr to be unmapped. */void km_unmap(uintptr_t vaddr, size_t size){	size_t offs; 	offs = vaddr - ALIGN_DOWN(vaddr, PAGE_SIZE); 	km_unmap_aligned(ALIGN_DOWN(vaddr, PAGE_SIZE),	    ALIGN_UP(size + offs, PAGE_SIZE));}
开发者ID:pratikmankawde,项目名称:HelenOS_Nano,代码行数:14,


示例3: tegra_spi_dma_prepare

static int tegra_spi_dma_prepare(struct tegra_spi_channel *spi,		unsigned int bytes, enum spi_direction dir){	unsigned int todo, wcount;	/*	 * For DMA we need to think of things in terms of word count.	 * AHB width is fixed at 32-bits. To avoid overrunning	 * the in/out buffers we must align down. (Note: lowest 2-bits	 * in WCOUNT register are ignored, and WCOUNT seems to count	 * words starting at n-1)	 *	 * Example: If "bytes" is 7 and we are transferring 1-byte at a time,	 * WCOUNT should be 4. The remaining 3 bytes must be transferred	 * using PIO.	 */	todo = MIN(bytes, SPI_MAX_TRANSFER_BYTES_DMA - TEGRA_DMA_ALIGN_BYTES);	todo = ALIGN_DOWN(todo, TEGRA_DMA_ALIGN_BYTES);	wcount = ALIGN_DOWN(todo - TEGRA_DMA_ALIGN_BYTES, TEGRA_DMA_ALIGN_BYTES);	flush_fifos(spi);	if (dir == SPI_SEND) {		spi->dma_out = dma_claim();		if (!spi->dma_out)			return -1;		/* ensure bytes to send will be visible to DMA controller */		dcache_clean_by_mva(spi->out_buf, bytes);		write32(&spi->dma_out->regs->apb_ptr,			(uintptr_t) & spi->regs->tx_fifo);		write32(&spi->dma_out->regs->ahb_ptr, (uintptr_t)spi->out_buf);		setbits_le32(&spi->dma_out->regs->csr, APB_CSR_DIR);		setup_dma_params(spi, spi->dma_out);		write32(&spi->dma_out->regs->wcount, wcount);	} else {		spi->dma_in = dma_claim();		if (!spi->dma_in)			return -1;		/* avoid data collisions */		dcache_clean_invalidate_by_mva(spi->in_buf, bytes);		write32(&spi->dma_in->regs->apb_ptr,			(uintptr_t)&spi->regs->rx_fifo);		write32(&spi->dma_in->regs->ahb_ptr, (uintptr_t)spi->in_buf);		clrbits_le32(&spi->dma_in->regs->csr, APB_CSR_DIR);		setup_dma_params(spi, spi->dma_in);		write32(&spi->dma_in->regs->wcount, wcount);	}	/* BLOCK_SIZE starts at n-1 */	write32(&spi->regs->dma_blk, todo - 1);	return todo;}
开发者ID:siro20,项目名称:coreboot,代码行数:56,


示例4: km_map

/** Map a piece of physical address space into the virtual address space. * * @param paddr		Physical address to be mapped. May be unaligned. * @param size		Size of area starting at paddr to be mapped. * @param flags		Protection flags to be used for the mapping. * * @return New virtual address mapped to paddr. */uintptr_t km_map(uintptr_t paddr, size_t size, unsigned int flags){	uintptr_t page;	size_t offs; 	offs = paddr - ALIGN_DOWN(paddr, FRAME_SIZE); 	page = km_map_aligned(ALIGN_DOWN(paddr, FRAME_SIZE),	    ALIGN_UP(size + offs, FRAME_SIZE), flags);	return page + offs;}
开发者ID:pratikmankawde,项目名称:HelenOS_Nano,代码行数:19,


示例5: umask

void *write_thread(void *_ts) {	struct ts *ts = _ts;	struct packet *packet;	mode_t umask_val = umask(0);	dir_perm = (0777 & ~umask_val) | (S_IWUSR | S_IXUSR);	set_thread_name("tsdump-write");	while ((packet = queue_get(ts->packet_queue))) {		if (!packet->data_len)			continue;		p_dbg1(" - Got packet %d, size: %u, file_time:%lu packet_time:%lu depth:%d/n",			packet->num, packet->data_len, ALIGN_DOWN(packet->ts.tv_sec, ts->rotate_secs),			packet->ts.tv_sec, ts->packet_queue->items);		handle_files(ts, packet);		if (ts->output_fd > -1) {			p_dbg2(" - Writing into fd:%d size:%d file:%s/n", ts->output_fd, packet->data_len, ts->output_filename);			ssize_t written = write(ts->output_fd, packet->data, packet->data_len);			if (written != packet->data_len) {				p_err("Can not write data (fd:%d written %zd of %d file:%s)",					ts->output_fd, written, packet->data_len, ts->output_filename);			}		}		free_packet(packet);	}	close_output_file(ts, NO_UNLINK);	return NULL;}
开发者ID:davidtsulaia,项目名称:tsdumper2,代码行数:31,


示例6: handle_files

static void handle_files(struct ts *ts, struct packet *packet) {	int file_time = ALIGN_DOWN(packet->ts.tv_sec, ts->rotate_secs);	// Is this file already created?	if (file_time <= ts->output_startts)		return;	close_output_file(ts, UNLINK_OLD);	format_output_filename(ts, file_time);	/*	 * When tsdumper2 is started, try to continue writing into "current" file.	 * This allows the program to be killed/restarted.	 *	 * If current file does not exist, create new file with the time of the start	 * (not aligned to rotate_secs).	 */	int append = 0;	if (ts->output_fd < 0) { // First file (or error).		append = file_exists(ts->output_filename);		if (!append) { // Create first file *NOT ALIGNED*			format_output_filename(ts, packet->ts.tv_sec);		}	}	ts->output_fd = append ? append_output_file(ts) : create_output_file(ts);}
开发者ID:davidtsulaia,项目名称:tsdumper2,代码行数:27,


示例7: Pool_init

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。