summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2022-01-23 14:02:23 +1100
committer Vas Crabb <vas@vastheman.com>2022-01-23 14:02:23 +1100
commite43a6fa535c955cad21fa8fc6f95e946687d58c9 (patch)
tree90326999fb6abd29df7da654e80efe230767de03 /src/lib/formats
parent66443340c82e617febfb1d6cf2602b4a1613007f (diff)
srcclean in preparation for 0.240
Diffstat (limited to 'src/lib/formats')
-rw-r--r--src/lib/formats/coco_rawdsk.cpp2
-rw-r--r--src/lib/formats/coco_rawdsk.h2
-rw-r--r--src/lib/formats/fs_coco_os9.cpp126
-rw-r--r--src/lib/formats/fs_coco_os9.h76
-rw-r--r--src/lib/formats/fs_coco_rsdos.cpp14
-rw-r--r--src/lib/formats/fs_coco_rsdos.h32
6 files changed, 126 insertions, 126 deletions
diff --git a/src/lib/formats/coco_rawdsk.cpp b/src/lib/formats/coco_rawdsk.cpp
index 6100483dda3..5f5a3341da2 100644
--- a/src/lib/formats/coco_rawdsk.cpp
+++ b/src/lib/formats/coco_rawdsk.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Nathan Woods
/***************************************************************************
- CoCo Raw Disk
+ CoCo Raw Disk
***************************************************************************/
diff --git a/src/lib/formats/coco_rawdsk.h b/src/lib/formats/coco_rawdsk.h
index 035d941a7b2..e0d5ce04cb4 100644
--- a/src/lib/formats/coco_rawdsk.h
+++ b/src/lib/formats/coco_rawdsk.h
@@ -2,7 +2,7 @@
// copyright-holders:Nathan Woods
/***************************************************************************
- CoCo Raw Disk
+ CoCo Raw Disk
***************************************************************************/
diff --git a/src/lib/formats/fs_coco_os9.cpp b/src/lib/formats/fs_coco_os9.cpp
index 7bc36398a60..d203f731ba8 100644
--- a/src/lib/formats/fs_coco_os9.cpp
+++ b/src/lib/formats/fs_coco_os9.cpp
@@ -2,14 +2,14 @@
// copyright-holders:Nathan Woods
/***************************************************************************
- fs_coco_os9.cpp
+ fs_coco_os9.cpp
- Management of CoCo OS-9 floppy images
+ Management of CoCo OS-9 floppy images
- OS-9 Level 2 Technical Reference, Chapter 5, Random Block File Manager,
- page 2
+ OS-9 Level 2 Technical Reference, Chapter 5, Random Block File Manager,
+ page 2
- http://www.colorcomputerarchive.com/coco/Documents/Manuals/Operating Systems/OS-9 Level 2 Manual (Tandy).pdf
+ http://www.colorcomputerarchive.com/coco/Documents/Manuals/Operating Systems/OS-9 Level 2 Manual (Tandy).pdf
***************************************************************************/
@@ -27,7 +27,7 @@ const coco_os9_image COCO_OS9;
//**************************************************************************
//-------------------------------------------------
-// name
+// name
//-------------------------------------------------
const char *coco_os9_image::name() const
@@ -37,7 +37,7 @@ const char *coco_os9_image::name() const
//-------------------------------------------------
-// description
+// description
//-------------------------------------------------
const char *coco_os9_image::description() const
@@ -47,7 +47,7 @@ const char *coco_os9_image::description() const
//-------------------------------------------------
-// enumerate_f
+// enumerate_f
//-------------------------------------------------
void coco_os9_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
@@ -61,7 +61,7 @@ void coco_os9_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const s
//-------------------------------------------------
-// can_format
+// can_format
//-------------------------------------------------
bool coco_os9_image::can_format() const
@@ -71,7 +71,7 @@ bool coco_os9_image::can_format() const
//-------------------------------------------------
-// can_read
+// can_read
//-------------------------------------------------
bool coco_os9_image::can_read() const
@@ -81,7 +81,7 @@ bool coco_os9_image::can_read() const
//-------------------------------------------------
-// can_write
+// can_write
//-------------------------------------------------
bool coco_os9_image::can_write() const
@@ -91,7 +91,7 @@ bool coco_os9_image::can_write() const
//-------------------------------------------------
-// has_rsrc
+// has_rsrc
//-------------------------------------------------
bool coco_os9_image::has_rsrc() const
@@ -101,7 +101,7 @@ bool coco_os9_image::has_rsrc() const
//-------------------------------------------------
-// directory_separator
+// directory_separator
//-------------------------------------------------
char coco_os9_image::directory_separator() const
@@ -111,7 +111,7 @@ char coco_os9_image::directory_separator() const
//-------------------------------------------------
-// volume_meta_description
+// volume_meta_description
//-------------------------------------------------
std::vector<meta_description> coco_os9_image::volume_meta_description() const
@@ -123,7 +123,7 @@ std::vector<meta_description> coco_os9_image::volume_meta_description() const
//-------------------------------------------------
-// file_meta_description
+// file_meta_description
//-------------------------------------------------
std::vector<meta_description> coco_os9_image::file_meta_description() const
@@ -133,7 +133,7 @@ std::vector<meta_description> coco_os9_image::file_meta_description() const
//-------------------------------------------------
-// directory_meta_description
+// directory_meta_description
//-------------------------------------------------
std::vector<meta_description> coco_os9_image::directory_meta_description() const
@@ -143,7 +143,7 @@ std::vector<meta_description> coco_os9_image::directory_meta_description() const
//-------------------------------------------------
-// entity_meta_description
+// entity_meta_description
//-------------------------------------------------
std::vector<meta_description> coco_os9_image::entity_meta_description() const
@@ -159,7 +159,7 @@ std::vector<meta_description> coco_os9_image::entity_meta_description() const
//-------------------------------------------------
-// mount
+// mount
//-------------------------------------------------
std::unique_ptr<filesystem_t> coco_os9_image::mount(fsblk_t &blockdev) const
@@ -178,7 +178,7 @@ std::unique_ptr<filesystem_t> coco_os9_image::mount(fsblk_t &blockdev) const
//-------------------------------------------------
-// pick_os9_string
+// pick_os9_string
//-------------------------------------------------
std::string coco_os9_image::pick_os9_string(std::string_view raw_string)
@@ -201,7 +201,7 @@ std::string coco_os9_image::pick_os9_string(std::string_view raw_string)
//-------------------------------------------------
-// pick_integer_be
+// pick_integer_be
//-------------------------------------------------
u32 coco_os9_image::pick_integer_be(const u8 *data, int length)
@@ -214,7 +214,7 @@ u32 coco_os9_image::pick_integer_be(const u8 *data, int length)
//-------------------------------------------------
-// validate_filename
+// validate_filename
//-------------------------------------------------
bool coco_os9_image::validate_filename(std::string_view name)
@@ -226,8 +226,8 @@ bool coco_os9_image::validate_filename(std::string_view name)
//-------------------------------------------------
-// is_ignored_filename - should this file name be
-// ignored if it is in the file system?
+// is_ignored_filename - should this file name be
+// ignored if it is in the file system?
//-------------------------------------------------
bool coco_os9_image::is_ignored_filename(std::string_view name)
@@ -240,7 +240,7 @@ bool coco_os9_image::is_ignored_filename(std::string_view name)
//-------------------------------------------------
-// volume_header ctor
+// volume_header ctor
//-------------------------------------------------
coco_os9_image::volume_header::volume_header(fsblk_t::block_t &&block)
@@ -250,7 +250,7 @@ coco_os9_image::volume_header::volume_header(fsblk_t::block_t &&block)
//-------------------------------------------------
-// volume_header::name
+// volume_header::name
//-------------------------------------------------
std::string coco_os9_image::volume_header::name() const
@@ -261,7 +261,7 @@ std::string coco_os9_image::volume_header::name() const
//-------------------------------------------------
-// file_header ctor
+// file_header ctor
//-------------------------------------------------
coco_os9_image::file_header::file_header(fsblk_t::block_t &&block)
@@ -271,48 +271,48 @@ coco_os9_image::file_header::file_header(fsblk_t::block_t &&block)
//-------------------------------------------------
-// file_header::creation_date
+// file_header::creation_date
//-------------------------------------------------
util::arbitrary_datetime coco_os9_image::file_header::creation_date() const
{
util::arbitrary_datetime dt;
memset(&dt, 0, sizeof(dt));
- dt.year = 1900 + m_block.r8(13);
- dt.month = m_block.r8(14);
- dt.day_of_month = m_block.r8(15);
+ dt.year = 1900 + m_block.r8(13);
+ dt.month = m_block.r8(14);
+ dt.day_of_month = m_block.r8(15);
return dt;
}
//-------------------------------------------------
-// file_header::metadata
+// file_header::metadata
//-------------------------------------------------
meta_data coco_os9_image::file_header::metadata() const
{
// format the attributes
std::string attributes = util::string_format("%c%c%c%c%c%c%c%c",
- is_directory() ? 'd' : '-',
- is_non_sharable() ? 's' : '-',
- is_public_execute() ? 'x' : '-',
- is_public_write() ? 'w' : '-',
- is_public_read() ? 'r' : '-',
- is_user_execute() ? 'x' : '-',
- is_user_write() ? 'w' : '-',
- is_user_read() ? 'r' : '-');
+ is_directory() ? 'd' : '-',
+ is_non_sharable() ? 's' : '-',
+ is_public_execute() ? 'x' : '-',
+ is_public_write() ? 'w' : '-',
+ is_public_read() ? 'r' : '-',
+ is_user_execute() ? 'x' : '-',
+ is_user_write() ? 'w' : '-',
+ is_user_read() ? 'r' : '-');
meta_data result;
- result.set(meta_name::creation_date, creation_date());
- result.set(meta_name::owner_id, owner_id());
- result.set(meta_name::attributes, std::move(attributes));
- result.set(meta_name::length, file_size());
+ result.set(meta_name::creation_date, creation_date());
+ result.set(meta_name::owner_id, owner_id());
+ result.set(meta_name::attributes, std::move(attributes));
+ result.set(meta_name::length, file_size());
return result;
}
//-------------------------------------------------
-// file_header::get_sector_map_entry_count
+// file_header::get_sector_map_entry_count
//-------------------------------------------------
int coco_os9_image::file_header::get_sector_map_entry_count() const
@@ -322,18 +322,18 @@ int coco_os9_image::file_header::get_sector_map_entry_count() const
//-------------------------------------------------
-// file_header::get_sector_map_entry
+// file_header::get_sector_map_entry
//-------------------------------------------------
void coco_os9_image::file_header::get_sector_map_entry(int entry_number, u32 &start_lsn, u16 &count) const
{
- start_lsn = m_block.r24b(16 + (entry_number * 5) + 0);
- count = m_block.r16b(16 + (entry_number * 5) + 3);
+ start_lsn = m_block.r24b(16 + (entry_number * 5) + 0);
+ count = m_block.r16b(16 + (entry_number * 5) + 3);
}
//-------------------------------------------------
-// impl ctor
+// impl ctor
//-------------------------------------------------
coco_os9_image::impl::impl(fsblk_t &blockdev, volume_header &&header)
@@ -344,7 +344,7 @@ coco_os9_image::impl::impl(fsblk_t &blockdev, volume_header &&header)
//-------------------------------------------------
-// impl::metadata
+// impl::metadata
//-------------------------------------------------
meta_data coco_os9_image::impl::metadata()
@@ -356,7 +356,7 @@ meta_data coco_os9_image::impl::metadata()
//-------------------------------------------------
-// impl::root
+// impl::root
//-------------------------------------------------
filesystem_t::dir_t coco_os9_image::impl::root()
@@ -368,7 +368,7 @@ filesystem_t::dir_t coco_os9_image::impl::root()
//-------------------------------------------------
-// impl::drop_root_ref
+// impl::drop_root_ref
//-------------------------------------------------
void coco_os9_image::impl::drop_root_ref()
@@ -378,7 +378,7 @@ void coco_os9_image::impl::drop_root_ref()
//-------------------------------------------------
-// impl::open_directory
+// impl::open_directory
//-------------------------------------------------
coco_os9_image::impl::directory *coco_os9_image::impl::open_directory(u32 lsn)
@@ -389,7 +389,7 @@ coco_os9_image::impl::directory *coco_os9_image::impl::open_directory(u32 lsn)
//-------------------------------------------------
-// impl::read_file_data
+// impl::read_file_data
//-------------------------------------------------
std::vector<u8> coco_os9_image::impl::read_file_data(const file_header &header) const
@@ -416,7 +416,7 @@ std::vector<u8> coco_os9_image::impl::read_file_data(const file_header &header)
//-------------------------------------------------
-// file ctor
+// file ctor
//-------------------------------------------------
coco_os9_image::impl::file::file(impl &i, file_header &&file_header)
@@ -427,7 +427,7 @@ coco_os9_image::impl::file::file(impl &i, file_header &&file_header)
//-------------------------------------------------
-// file::drop_weak_references
+// file::drop_weak_references
//-------------------------------------------------
void coco_os9_image::impl::file::drop_weak_references()
@@ -436,7 +436,7 @@ void coco_os9_image::impl::file::drop_weak_references()
//-------------------------------------------------
-// file::metadata
+// file::metadata
//-------------------------------------------------
meta_data coco_os9_image::impl::file::metadata()
@@ -446,7 +446,7 @@ meta_data coco_os9_image::impl::file::metadata()
//-------------------------------------------------
-// file::read_all
+// file::read_all
//-------------------------------------------------
std::vector<u8> coco_os9_image::impl::file::read_all()
@@ -456,7 +456,7 @@ std::vector<u8> coco_os9_image::impl::file::read_all()
//-------------------------------------------------
-// directory ctor
+// directory ctor
//-------------------------------------------------
coco_os9_image::impl::directory::directory(impl &i, file_header &&file_header)
@@ -467,7 +467,7 @@ coco_os9_image::impl::directory::directory(impl &i, file_header &&file_header)
//-------------------------------------------------
-// directory::drop_weak_references
+// directory::drop_weak_references
//-------------------------------------------------
void coco_os9_image::impl::directory::drop_weak_references()
@@ -476,7 +476,7 @@ void coco_os9_image::impl::directory::drop_weak_references()
//-------------------------------------------------
-// directory::metadata
+// directory::metadata
//-------------------------------------------------
meta_data coco_os9_image::impl::directory::metadata()
@@ -486,7 +486,7 @@ meta_data coco_os9_image::impl::directory::metadata()
//-------------------------------------------------
-// directory::contents
+// directory::contents
//-------------------------------------------------
std::vector<dir_entry> coco_os9_image::impl::directory::contents()
@@ -520,7 +520,7 @@ std::vector<dir_entry> coco_os9_image::impl::directory::contents()
//-------------------------------------------------
-// directory::file_get
+// directory::file_get
//-------------------------------------------------
filesystem_t::file_t coco_os9_image::impl::directory::file_get(u64 key)
@@ -531,7 +531,7 @@ filesystem_t::file_t coco_os9_image::impl::directory::file_get(u64 key)
//-------------------------------------------------
-// directory::dir_get
+// directory::dir_get
//-------------------------------------------------
filesystem_t::dir_t coco_os9_image::impl::directory::dir_get(u64 key)
diff --git a/src/lib/formats/fs_coco_os9.h b/src/lib/formats/fs_coco_os9.h
index dce2439694c..57bfce983c6 100644
--- a/src/lib/formats/fs_coco_os9.h
+++ b/src/lib/formats/fs_coco_os9.h
@@ -2,9 +2,9 @@
// copyright-holders:Nathan Woods
/***************************************************************************
- fs_coco_os9.h
+ fs_coco_os9.h
- Management of CoCo OS-9 floppy images
+ Management of CoCo OS-9 floppy images
***************************************************************************/
@@ -28,28 +28,28 @@ public:
public:
volume_header(fsblk_t::block_t &&block);
- u32 total_sectors() const { return m_block.r24b(0); }
- u8 track_size_in_sectors() const { return m_block.r8(3); }
+ u32 total_sectors() const { return m_block.r24b(0); }
+ u8 track_size_in_sectors() const { return m_block.r8(3); }
u16 allocation_bitmap_bytes() const { return m_block.r16b(4); }
- u16 cluster_size() const { return m_block.r16b(6); }
- u32 root_dir_lsn() const { return m_block.r24b(8); }
- u16 owner_id() const { return m_block.r16b(11); }
- u16 disk_id() const { return m_block.r16b(14); }
- u8 format_flags() const { return m_block.r8(16); }
- u16 sectors_per_track() const { return m_block.r16b(17); }
- u32 bootstrap_lsn() const { return m_block.r24b(21); }
- u16 bootstrap_size() const { return m_block.r16b(24); }
- u16 sector_size() const { u16 result = m_block.r16b(104); return result != 0 ? result : 256; }
- u8 sides() const { return (format_flags() & 0x01) ? 2 : 1; }
- bool double_density() const { return (format_flags() & 0x02) != 0; }
- bool double_track() const { return (format_flags() & 0x04) != 0; }
- bool quad_track_density() const { return (format_flags() & 0x08) != 0; }
- bool octal_track_density() const { return (format_flags() & 0x10) != 0; }
+ u16 cluster_size() const { return m_block.r16b(6); }
+ u32 root_dir_lsn() const { return m_block.r24b(8); }
+ u16 owner_id() const { return m_block.r16b(11); }
+ u16 disk_id() const { return m_block.r16b(14); }
+ u8 format_flags() const { return m_block.r8(16); }
+ u16 sectors_per_track() const { return m_block.r16b(17); }
+ u32 bootstrap_lsn() const { return m_block.r24b(21); }
+ u16 bootstrap_size() const { return m_block.r16b(24); }
+ u16 sector_size() const { u16 result = m_block.r16b(104); return result != 0 ? result : 256; }
+ u8 sides() const { return (format_flags() & 0x01) ? 2 : 1; }
+ bool double_density() const { return (format_flags() & 0x02) != 0; }
+ bool double_track() const { return (format_flags() & 0x04) != 0; }
+ bool quad_track_density() const { return (format_flags() & 0x08) != 0; }
+ bool octal_track_density() const { return (format_flags() & 0x10) != 0; }
std::string name() const;
private:
- fsblk_t::block_t m_block;
+ fsblk_t::block_t m_block;
};
class file_header
@@ -57,26 +57,26 @@ public:
public:
file_header(fsblk_t::block_t &&block);
- u8 attributes() const { return m_block.r8(0); }
- u16 owner_id() const { return m_block.r16b(1); }
- u8 link_count() const { return m_block.r8(8); }
- u32 file_size() const { return m_block.r32b(9); }
+ u8 attributes() const { return m_block.r8(0); }
+ u16 owner_id() const { return m_block.r16b(1); }
+ u8 link_count() const { return m_block.r8(8); }
+ u32 file_size() const { return m_block.r32b(9); }
util::arbitrary_datetime creation_date() const;
- bool is_directory() const { return (attributes() & 0x80) != 0; }
- bool is_non_sharable() const { return (attributes() & 0x40) != 0; }
- bool is_public_execute() const { return (attributes() & 0x20) != 0; }
- bool is_public_write() const { return (attributes() & 0x10) != 0; }
- bool is_public_read() const { return (attributes() & 0x08) != 0; }
- bool is_user_execute() const { return (attributes() & 0x04) != 0; }
- bool is_user_write() const { return (attributes() & 0x02) != 0; }
- bool is_user_read() const { return (attributes() & 0x01) != 0; }
+ bool is_directory() const { return (attributes() & 0x80) != 0; }
+ bool is_non_sharable() const { return (attributes() & 0x40) != 0; }
+ bool is_public_execute() const { return (attributes() & 0x20) != 0; }
+ bool is_public_write() const { return (attributes() & 0x10) != 0; }
+ bool is_public_read() const { return (attributes() & 0x08) != 0; }
+ bool is_user_execute() const { return (attributes() & 0x04) != 0; }
+ bool is_user_write() const { return (attributes() & 0x02) != 0; }
+ bool is_user_read() const { return (attributes() & 0x01) != 0; }
meta_data metadata() const;
int get_sector_map_entry_count() const;
void get_sector_map_entry(int entry_number, u32 &start_lsn, u16 &count) const;
private:
- fsblk_t::block_t m_block;
+ fsblk_t::block_t m_block;
};
coco_os9_image() : manager_t() {}
@@ -112,8 +112,8 @@ private:
virtual std::vector<u8> read_all() override;
private:
- impl & m_fs;
- file_header m_file_header;
+ impl & m_fs;
+ file_header m_file_header;
};
class directory : public idir_t {
@@ -128,8 +128,8 @@ private:
virtual dir_t dir_get(u64 key) override;
private:
- impl & m_fs;
- file_header m_file_header;
+ impl & m_fs;
+ file_header m_file_header;
};
impl(fsblk_t &blockdev, volume_header &&header);
@@ -139,8 +139,8 @@ private:
virtual dir_t root() override;
private:
- volume_header m_volume_header;
- dir_t m_root;
+ volume_header m_volume_header;
+ dir_t m_root;
directory *open_directory(u32 lsn);
void drop_root_ref();
diff --git a/src/lib/formats/fs_coco_rsdos.cpp b/src/lib/formats/fs_coco_rsdos.cpp
index bc13fa0efc4..2ba2f9c68ac 100644
--- a/src/lib/formats/fs_coco_rsdos.cpp
+++ b/src/lib/formats/fs_coco_rsdos.cpp
@@ -2,9 +2,9 @@
// copyright-holders:Nathan Woods
/***************************************************************************
- fs_coco_rsdos.cpp
+ fs_coco_rsdos.cpp
- Management of CoCo "RS-DOS" floppy images
+ Management of CoCo "RS-DOS" floppy images
***************************************************************************/
@@ -249,11 +249,11 @@ meta_data coco_rsdos_image::impl::file::metadata()
// build the metadata and return it
meta_data result;
- result.set(meta_name::name, get_filename_from_dirent(m_dirent));
- result.set(meta_name::file_type, m_dirent.m_filetype);
- result.set(meta_name::ascii_flag, std::string(1, file_type_char));
- result.set(meta_name::size_in_blocks, granule_count);
- result.set(meta_name::length, file_size);
+ result.set(meta_name::name, get_filename_from_dirent(m_dirent));
+ result.set(meta_name::file_type, m_dirent.m_filetype);
+ result.set(meta_name::ascii_flag, std::string(1, file_type_char));
+ result.set(meta_name::size_in_blocks, granule_count);
+ result.set(meta_name::length, file_size);
return result;
}
diff --git a/src/lib/formats/fs_coco_rsdos.h b/src/lib/formats/fs_coco_rsdos.h
index e02a5a831f4..6d7623c59c2 100644
--- a/src/lib/formats/fs_coco_rsdos.h
+++ b/src/lib/formats/fs_coco_rsdos.h
@@ -2,9 +2,9 @@
// copyright-holders:Nathan Woods
/***************************************************************************
- fs_coco_rsdos.h
+ fs_coco_rsdos.h
- Management of CoCo "RS-DOS" floppy images
+ Management of CoCo "RS-DOS" floppy images
***************************************************************************/
@@ -56,20 +56,20 @@ private:
struct rsdos_dirent
{
- char m_filename[11];
- u8 m_filetype;
- u8 m_asciiflag;
- u8 m_first_granule;
- u8 m_last_sector_bytes_msb;
- u8 m_last_sector_bytes_lsb;
+ char m_filename[11];
+ u8 m_filetype;
+ u8 m_asciiflag;
+ u8 m_first_granule;
+ u8 m_last_sector_bytes_msb;
+ u8 m_last_sector_bytes_lsb;
};
struct rsdos_dirent_sector
{
struct
{
- rsdos_dirent m_dirent;
- u8 m_unused[16];
+ rsdos_dirent m_dirent;
+ u8 m_unused[16];
} m_entries[4];
};
@@ -79,10 +79,10 @@ private:
bool next(u8 &granule, u16 &byte_count);
private:
- fsblk_t::block_t m_granule_map;
- std::optional<u8> m_current_granule;
- u8 m_maximum_granules;
- u16 m_last_sector_bytes;
+ fsblk_t::block_t m_granule_map;
+ std::optional<u8> m_current_granule;
+ u8 m_maximum_granules;
+ u16 m_last_sector_bytes;
};
class file : public ifile_t {
@@ -96,8 +96,8 @@ private:
virtual std::vector<u8> read_all() override;
private:
- impl & m_fs;
- rsdos_dirent m_dirent;
+ impl & m_fs;
+ rsdos_dirent m_dirent;
};
impl(fsblk_t &blockdev);