summaryrefslogtreecommitdiff
path: root/rust-src/bch_bindgen
AgeCommit message (Collapse)Author
2024-01-16convert main() from C to RustThomas Bertschinger
This moves the main() function from C to Rust. It also updates the name of the Rust package from "bcachefs-rust" to "bcachefs-tools". Signed-off-by: Thomas Bertschinger <tahbertschinger@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2024-01-15Prune rust dependenciesKent Overstreet
pruned via 'cargo machete --fix' Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-12-21Silence a few rust build warningsKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-11-23rust: fix MSRV buildAlexander Fougner
- downgrade clap_completion to 4.3.x (1.65 compatible) - dependency updates - remove unused imports Signed-off-by: Alexander Fougner <fougner89@gmail.com>
2023-11-16Bump rust edition to 2021Kent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-11-16Update bcachefs sources to 938f680845d1 fixup! rename and export ↵Kent Overstreet
__kern_path_locked()
2023-11-02Update, slim down rust dependenciesKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-10-19Update bcachefs sources to 24bdb6fed91c bcachefs: bch2_btree_id_str()Kent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-10-18Update bcachefs sources to a180af9dd349 bcachefs: Refactor memcpy into ↵Kent Overstreet
direct assignment Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-09-23Update bcachefs sources to f9c612bbf82d bcachefs: Fixes for building in ↵Kent Overstreet
userspace Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-05-02Update bcachefs sources to 6a20aede29 bcachefs: Fix quotas + snapshotsv0.29Kent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-04-27chore(rust): add opt_get! and expose some FMODE_* as Rust constTruongSinh Tran-Nguyen
In an effort to rewrite `bch2_read_super` from C to Rust, it is neccessary to have `opt_get!` macro defined, and some FMODE_* consts (defined as macro in `include/linux/blkdev.h`) defined as Rust const. Bindgen is currently unable to exapnd C functional macro [1], this this commit use the workaround as introduced in [2]. [1] https://github.com/rust-lang/rust-bindgen/issues/753 [2] https://github.com/rust-lang/rust-bindgen/issues/753#issuecomment-608546390 Signed-off-by: TruongSinh Tran-Nguyen <i@truongsinh.pro>
2023-04-26chore: logger for idiomatic style and expanded logging levelsTruongSinh Tran-Nguyen
Improve the Rust logger by adhering to idiomatic Rust conventions and incorporating additional logging levels: warn, debug, and trace. Signed-off-by: TruongSinh Tran-Nguyen <i@truongsinh.pro>
2023-03-06cmd_list.rs: Finish list modes, delete cmd_list.cKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-03-04rust: Implement BtreeNodeIterKent Overstreet
This implements BtreeNodeIter, and adds it to cmd_list.rs - the next step in having a full replacement for cmd_list.c Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-03-04rust: Fix ptr casting in Fs::open()Kent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-03-02rust: BkeySC now has correct lifetime on BtreeIterKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: Filesystem options now supportedKent Overstreet
This implements opt_set!(), which works exactly the same as the C version and allows filesystem options to be specified in Rust code. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: BtreeTrans lifetime now marked w.r.t. FsKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: BkeyValCKent Overstreet
Now we have a rust-style enum for key types Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: BkeySCKent Overstreet
Implement a rust equivalent to bkey_s_c, which uses references with the correct lifetimes: now cmd_list.rs doesn't need unsafe. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28bcachefs: Annotate BtreeIter with BtreeTrans lifetimeKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-28rust: Simplify bpos FromStrKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-27rust: BtreeIterFlagsKent Overstreet
This adds a new wrapper type for btree iterator flags. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-27Rust: Start of cmd_list rewriteKent Overstreet
This is a _very_ preliminary rewrite of the cmd_list tool in rust, which is intended to be a testing ground for a safe interface in Rust to the core btree interface. This adds rust wrappers for: bch_fs: provides bch2_fs_open(), bch2_fs_stop btree_trans: provides bch2_trans_init(), bch2_trans_exit() btree_iter: provides peek, peek_and_restart, advance bch_errcode: implements Display (wraps bch2_err_str()) bpos: implements Ord (wraps bpos_cmp()) bkey_s_c: implements Display (wraps bch2_bkey_val_to_text()) and other assorted types. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-27nix fix up! Rust now integrated into bcachefs binaryDaniel Hill
Heavily simplified to just call make with the required rust dependencies. Signed-off-by: Daniel Hill <daniel@gluo.nz>
2023-02-21rust-src: Clean up read_super bindingsKent Overstreet
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-21Rust now integrated into bcachefs binaryKent Overstreet
Rust is now required for building the bcachefs tool, and rust code is now fully integrated with the C codebase - meaning it is possible to call back and forth. The mount helper is now a subcommand, 'mount.bcachefs' is now a small shell wrapper that invokes 'bcachefs mount'. This will make it easier to start rewriting other subcommands in rust, and eventually the whole command line interface. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-02-02nix: fix compilation issuesDaniel Hill
Update Cargo.lock files to match new dependancies Bump nixpkgs pin
2023-01-18rust: replace tracing with loggerAlexander Fougner
tracing framework is a overengineered for simple mount helper. Add a few very barebone logging macros to allow configurable verbosity and colorized output with a small footprint. Signed-off-by: Alexander Fougner <fougner89@gmail.com>
2023-01-16rust: use rustfmt defaultsAlexander Fougner
follow the kernel style guide, i.e idiomatic rust style. Signed-off-by: Alexander Fougner <fougner89@gmail.com>
2023-01-15rust: support fstab style mountAlexander Fougner
- add support for fstab format, UUID=<uuid> - structopt is no longer actively maintained, replace with clap v4 which support everything structopt can and more. - update dependencies Signed-off-by: Alexander Fougner <fougner89@gmail.com>
2023-01-03nix: overhaul build system.Daniel Hill
Removed outdated overlay. Simply build tooling using bingenHook and propagated*Inputs Signed-off-by: Daniel Hill <daniel@gluo.nz>
2023-01-03rust: update bindgen to 0.63Daniel Hill
Signed-off-by: Daniel Hill <daniel@gluo.nz>
2022-11-19rust-src: cargo updateKent Overstreet
Update locked dependencies Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2021-10-18split mount into a library crate for rust reuseKayla Firestack
update makefile to output shared library and rust build fix default.nix to properly get the binary name for `ln`ing - move binary to main.rs add rustfmt and gitignore files move build.rs file into bch_bindgen for reuse between projects add outputs to nix flake and checks add mount.toml to makefile
2021-10-18add mount and bch-bindgen nix builder fileKayla Firestack
update kernel diffHash