blk_linux.c

来自「xen虚拟机源代码安装包」· C语言 代码 · 共 43 行

C
43
字号
#include <inttypes.h>#include <sys/ioctl.h>#include <linux/fs.h>#include "tapdisk.h"#include "blk.h"int blk_getimagesize(int fd, uint64_t *size){	int rc;	*size = 0;	rc = ioctl(fd, BLKGETSIZE, size);	if (rc) {		DPRINTF("ERR: BLKGETSIZE failed, couldn't stat image");		return -EINVAL;	}	return 0;}int blk_getsectorsize(int fd, uint64_t *sector_size){#if defined(BLKSSZGET)	int rc;	*sector_size = DEFAULT_SECTOR_SIZE;	rc = ioctl(fd, BLKSSZGET, sector_size);	if (rc) {		DPRINTF("ERR: BLKSSZGET failed. Falling back to use default sector size");		*sector_size = DEFAULT_SECTOR_SIZE;	}	if (*sector_size != DEFAULT_SECTOR_SIZE)		DPRINTF("Note: sector size is %"PRIu64" (not %u)\n",			*sector_size, DEFAULT_SECTOR_SIZE);#else	*sector_size = DEFAULT_SECTOR_SIZE;#endif	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?