コード例 #1
0
ファイル: flash_emu.c プロジェクト: Julia117/embox
static int flash_emu_erase_block (struct flash_dev *dev, uint32_t block_base) {
	block_dev_t *bdev;
	int len;
	char * data;
	int rc;

	bdev = dev->privdata;
	if(NULL == bdev) {
		return -ENODEV;
	}
	len = bdev->driver->ioctl(bdev, IOCTL_GETBLKSIZE, NULL, 0);

	if(NULL == (data = sysmalloc(len))) {
		return -ENOMEM;
	}
	memset((void *) data, 0xFF, (size_t) len);

	rc = block_dev_write_buffered(bdev, (const char *) data,
			(size_t) len, block_base);
	sysfree(data);

	if(len == rc) {
		return 0;
	}

	return rc;
}
コード例 #2
0
ファイル: block_dev.c プロジェクト: carriercomm/embox
static size_t bdev_write(struct file_desc *desc, void *buf, size_t size) {
	int n_write = block_dev_write_buffered((block_dev_t *) desc->node->nas->fi->privdata,
			buf, size, desc->cursor);
	if (n_write > 0) {
		desc->cursor += n_write;
	}

	return n_write;
}
コード例 #3
0
ファイル: flash_emu.c プロジェクト: Julia117/embox
static int flash_emu_program (struct flash_dev *dev, uint32_t base,
		const void* data, size_t len) {
	block_dev_t *bdev;

	bdev = dev->privdata;
	if(NULL == bdev) {
		return -ENODEV;
	}
	return block_dev_write_buffered(bdev, (const char *) data,
			len, (uint32_t) base);
}
コード例 #4
0
ファイル: tmpfs.c プロジェクト: AleksandraButrova/embox
static int tmpfs_write_sector(struct nas *nas, char *buffer,
		uint32_t count, uint32_t sector) {
	struct tmpfs_fs_info *fsi;

	fsi = nas->fs->fsi;

	if(0 > block_dev_write_buffered(nas->fs->bdev, buffer,
			count * fsi->block_size, sector * fsi->block_size)) {
		return -1;
	}
	else {
		return count;
	}
}