2016-05-26 18:22:22 +03:00
|
|
|
/*
|
2017-01-21 09:02:33 +03:00
|
|
|
* Copyright (c) 2016-present, Facebook, Inc.
|
2016-05-26 18:22:22 +03:00
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* This source code is licensed under the BSD-style license found in the
|
|
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
#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
|