2016-05-26 18:22:22 +03:00
|
|
|
/*
|
2019-06-20 02:58:25 +03:00
|
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
2016-05-26 18:22:22 +03:00
|
|
|
*
|
2019-06-20 02:58:25 +03:00
|
|
|
* This software may be used and distributed according to the terms of the
|
|
|
|
* GNU General Public License version 2.
|
2016-05-26 18:22:22 +03:00
|
|
|
*/
|
2019-10-11 15:26:59 +03:00
|
|
|
|
2016-05-26 18:22:22 +03:00
|
|
|
#pragma once
|
|
|
|
#include <errno.h>
|
|
|
|
#include <folly/String.h>
|
|
|
|
#include <sys/xattr.h>
|
|
|
|
|
|
|
|
namespace facebook {
|
|
|
|
namespace eden {
|
|
|
|
|
|
|
|
constexpr int kENOATTR =
|
|
|
|
#ifndef ENOATTR
|
|
|
|
ENODATA // Linux
|
|
|
|
#else
|
|
|
|
ENOATTR
|
|
|
|
#endif
|
|
|
|
;
|
|
|
|
|
|
|
|
constexpr folly::StringPiece kXattrSha1{"user.sha1"};
|
|
|
|
|
|
|
|
std::string fgetxattr(int fd, folly::StringPiece name);
|
2016-05-26 18:22:23 +03:00
|
|
|
void fsetxattr(int fd, folly::StringPiece name, folly::StringPiece value);
|
2018-01-31 08:40:53 +03:00
|
|
|
|
|
|
|
/// like getxattr(2), but portable. This is primarily to facilitate our
|
|
|
|
/// integration tests.
|
|
|
|
std::string getxattr(folly::StringPiece path, folly::StringPiece name);
|
|
|
|
|
|
|
|
/// like listxattr(2), but more easily consumable from C++.
|
|
|
|
// This is primarily to facilitate our integration tests.
|
|
|
|
std::vector<std::string> listxattr(folly::StringPiece path);
|
|
|
|
|
2017-11-04 01:58:04 +03:00
|
|
|
} // namespace eden
|
|
|
|
} // namespace facebook
|