summaryrefslogtreecommitdiff
path: root/rust-src/bch_bindgen/src/bcachefs.rs
diff options
context:
space:
mode:
authorThomas Bertschinger <tahbertschinger@gmail.com>2024-01-15 23:41:02 -0700
committerKent Overstreet <kent.overstreet@linux.dev>2024-01-16 01:47:05 -0500
commitf5baaf48e3e82b1caf9f5cd1207d4d6feba3a2e5 (patch)
tree59f7b0e4667df7a9d3d5a45725f2aaab3e79b4c5 /rust-src/bch_bindgen/src/bcachefs.rs
parentfb35dbfdc5a9446fbb856dae5542b23963e28b89 (diff)
move Rust sources to top level, C sources into c_src
This moves the Rust sources out of rust_src/ and into the top level. Running the bcachefs executable out of the development tree is now: $ ./target/release/bcachefs command or $ cargo run --profile release -- command instead of "./bcachefs command". Building and installing is still: $ make && make install Signed-off-by: Thomas Bertschinger <tahbertschinger@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'rust-src/bch_bindgen/src/bcachefs.rs')
-rw-r--r--rust-src/bch_bindgen/src/bcachefs.rs112
1 files changed, 0 insertions, 112 deletions
diff --git a/rust-src/bch_bindgen/src/bcachefs.rs b/rust-src/bch_bindgen/src/bcachefs.rs
deleted file mode 100644
index 8e897c08..00000000
--- a/rust-src/bch_bindgen/src/bcachefs.rs
+++ /dev/null
@@ -1,112 +0,0 @@
-#![allow(non_upper_case_globals)]
-#![allow(non_camel_case_types)]
-#![allow(non_snake_case)]
-#![allow(unused)]
-
-include!(concat!(env!("OUT_DIR"), "/bcachefs.rs"));
-
-use bitfield::bitfield;
-bitfield! {
- pub struct bch_scrypt_flags(u64);
- pub N, _: 15, 0;
- pub R, _: 31, 16;
- pub P, _: 47, 32;
-}
-bitfield! {
- pub struct bch_crypt_flags(u64);
- pub TYPE, _: 4, 0;
-}
-use memoffset::offset_of;
-impl bch_sb_field_crypt {
- pub fn scrypt_flags(&self) -> Option<bch_scrypt_flags> {
- use std::convert::TryInto;
- match bch_kdf_types(bch_crypt_flags(self.flags).TYPE().try_into().ok()?) {
- bch_kdf_types::BCH_KDF_SCRYPT => Some(bch_scrypt_flags(self.kdf_flags)),
- _ => None,
- }
- }
- pub fn key(&self) -> &bch_encrypted_key {
- &self.key
- }
-}
-impl PartialEq for bch_sb {
- fn eq(&self, other: &Self) -> bool {
- self.magic.b == other.magic.b
- && self.user_uuid.b == other.user_uuid.b
- && self.block_size == other.block_size
- && self.version == other.version
- && self.uuid.b == other.uuid.b
- && self.seq == other.seq
- }
-}
-
-impl bch_sb {
- pub fn crypt(&self) -> Option<&bch_sb_field_crypt> {
- unsafe {
- let ptr = bch2_sb_field_get_id(
- self as *const _ as *mut _,
- bch_sb_field_type::BCH_SB_FIELD_crypt,
- ) as *const u8;
- if ptr.is_null() {
- None
- } else {
- let offset = offset_of!(bch_sb_field_crypt, field);
- Some(&*((ptr.sub(offset)) as *const _))
- }
- }
- }
- pub fn uuid(&self) -> uuid::Uuid {
- uuid::Uuid::from_bytes(self.user_uuid.b)
- }
-
- /// Get the nonce used to encrypt the superblock
- pub fn nonce(&self) -> nonce {
- use byteorder::{LittleEndian, ReadBytesExt};
- let mut internal_uuid = &self.uuid.b[..];
- let dword1 = internal_uuid.read_u32::<LittleEndian>().unwrap();
- let dword2 = internal_uuid.read_u32::<LittleEndian>().unwrap();
- nonce {
- d: [0, 0, dword1, dword2],
- }
- }
-}
-impl bch_sb_handle {
- pub fn sb(&self) -> &bch_sb {
- unsafe { &*self.sb }
- }
-
- pub fn bdev(&self) -> &block_device {
- unsafe { &*self.bdev }
- }
-}
-
-#[repr(C)]
-// #[repr(align(8))]
-#[derive(Debug, Default, Copy, Clone)]
-pub struct bch_extent_ptr {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
-}
-
-#[repr(C, packed(8))]
-pub struct btree_node {
- pub csum: bch_csum,
- pub magic: __le64,
- pub flags: __le64,
- pub min_key: bpos,
- pub max_key: bpos,
- pub _ptr: bch_extent_ptr,
- pub format: bkey_format,
- pub __bindgen_anon_1: btree_node__bindgen_ty_1,
-}
-
-#[repr(C, packed(8))]
-// #[repr(align(8))]
-#[derive(Debug, Default, Copy, Clone)]
-pub struct bch_extent_crc32 {
- pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
- pub csum: __u32,
-}
-
-// #[repr(u8)]
-pub enum rhash_lock_head {}
-pub enum srcu_struct {}