# libpathrs: safe path resolution on Linux # Copyright (C) 2019-2024 Aleksa Sarai # Copyright (C) 2019-2024 SUSE LLC # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) any # later version. # # This program is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License along # with this program. If not, see . language = "C" header = """ /* * libpathrs: safe path resolution on Linux * Copyright (C) 2019-2024 Aleksa Sarai * Copyright (C) 2019-2024 SUSE LLC * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any * later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along * with this program. If not, see . */ #ifdef __CBINDGEN_ALIGNED #undef __CBINDGEN_ALIGNED #endif #define __CBINDGEN_ALIGNED(n) __attribute__((aligned(n))) """ trailer = """ #ifdef __CBINDGEN_ALIGNED #undef __CBINDGEN_ALIGNED #endif """ include_guard = "LIBPATHRS_H" autogen_warning = """ /* * WARNING: This file was auto-generated by rust-cbindgen. Don't modify it. * Instead, re-generate it with: * % cbindgen -c cbindgen.toml -o include/pathrs.h */ """ # Needed for dev_t. sys_includes = ["sys/types.h"] # Basic kernel-style formatting (can't use tabs so just use 4-spaces). line_length = 80 tab_width = 4 style = "type" [layout] aligned_n = "__CBINDGEN_ALIGNED" [export] exclude = [ # Don't generate a "typedef" for CBorrowedFd -- FFI-wise, CBorrowedFd is # just an int. "CBorrowedFd", # CReturn is a rust-only typedef. "CReturn", # Don't export the RESOLVE_* definitions. "RESOLVE_NO_XDEV", "RESOLVE_NO_MAGICLINKS", "RESOLVE_NO_SYMLINKS", "RESOLVE_BENEATH", "RESOLVE_IN_ROOT", ] # Clean up the naming of structs. [export.rename] "CProcfsBase" = "pathrs_proc_base_t" # Error API. "CError" = "pathrs_error_t" # The bare return values used for "kernel-like" APIs. "RawFd" = "int" "BorrowedFd" = "int" "CBorrowedFd" = "int"