X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Finclude%2Ftypes.h;fp=src%2Fceph%2Fsrc%2Finclude%2Ftypes.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=e904a151d75d800112de1a342a4fb3dec76dc139;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/include/types.h b/src/ceph/src/include/types.h deleted file mode 100644 index e904a15..0000000 --- a/src/ceph/src/include/types.h +++ /dev/null @@ -1,491 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2004-2006 Sage Weil - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ -#ifndef CEPH_TYPES_H -#define CEPH_TYPES_H - -// this is needed for ceph_fs to compile in userland -#include "int_types.h" -#include "byteorder.h" - -#include "uuid.h" - -#include -#include -#include - -// -// temporarily remap __le* to ceph_le* for benefit of shared kernel/userland headers -#define __le16 ceph_le16 -#define __le32 ceph_le32 -#define __le64 ceph_le64 -#include "ceph_fs.h" -#include "ceph_frag.h" -#include "rbd_types.h" -#undef __le16 -#undef __le32 -#undef __le64 -// - - -#ifdef __cplusplus -#ifndef _BACKWARD_BACKWARD_WARNING_H -#define _BACKWARD_BACKWARD_WARNING_H // make gcc 4.3 shut up about hash_* -#endif -#endif - -extern "C" { -#include -#include -#include -#include "statlite.h" -} - -#include -#include -#include -#include -#include -#include -#include - -using namespace std; - -#include "include/unordered_map.h" - -#include "object.h" -#include "intarith.h" - -#include "acconfig.h" - -#include "assert.h" - -// DARWIN compatibility -#ifdef DARWIN -typedef long long loff_t; -typedef long long off64_t; -#define O_DIRECT 00040000 -#endif - -// FreeBSD compatibility -#ifdef __FreeBSD__ -typedef off_t loff_t; -typedef off_t off64_t; -#endif - -#if defined(__sun) || defined(_AIX) -typedef off_t loff_t; -#endif - - -// -- io helpers -- - -// Forward declare all the I/O helpers so strict ADL can find them in -// the case of containers of containers. I'm tempted to abstract this -// stuff using template templates like I did for denc. - -template -inline ostream& operator<<(ostream&out, const pair& v); -template -inline ostream& operator<<(ostream& out, const vector& v); -template -inline ostream& operator<<(ostream& out, const deque& v); -template -inline ostream& operator<<(ostream&out, const boost::tuple &t); -template -inline ostream& operator<<(ostream& out, const list& ilist); -template -inline ostream& operator<<(ostream& out, const set& iset); -template -inline ostream& operator<<(ostream& out, const multiset& iset); -template -inline ostream& operator<<(ostream& out, const map& m); -template -inline ostream& operator<<(ostream& out, const multimap& m); - -template -inline ostream& operator<<(ostream& out, const pair& v) { - return out << v.first << "," << v.second; -} - -template -inline ostream& operator<<(ostream& out, const vector& v) { - out << "["; - for (auto p = v.begin(); p != v.end(); ++p) { - if (p != v.begin()) out << ","; - out << *p; - } - out << "]"; - return out; -} -template -inline ostream& operator<<(ostream& out, const deque& v) { - out << "<"; - for (auto p = v.begin(); p != v.end(); ++p) { - if (p != v.begin()) out << ","; - out << *p; - } - out << ">"; - return out; -} - -template -inline ostream& operator<<(ostream&out, const boost::tuple &t) { - out << boost::get<0>(t) <<"," << boost::get<1>(t) << "," << boost::get<2>(t); - return out; -} - -template -inline ostream& operator<<(ostream& out, const list& ilist) { - for (auto it = ilist.begin(); - it != ilist.end(); - ++it) { - if (it != ilist.begin()) out << ","; - out << *it; - } - return out; -} - -template -inline ostream& operator<<(ostream& out, const set& iset) { - for (auto it = iset.begin(); - it != iset.end(); - ++it) { - if (it != iset.begin()) out << ","; - out << *it; - } - return out; -} - -template -inline ostream& operator<<(ostream& out, const multiset& iset) { - for (auto it = iset.begin(); - it != iset.end(); - ++it) { - if (it != iset.begin()) out << ","; - out << *it; - } - return out; -} - -template -inline ostream& operator<<(ostream& out, const map& m) -{ - out << "{"; - for (auto it = m.begin(); - it != m.end(); - ++it) { - if (it != m.begin()) out << ","; - out << it->first << "=" << it->second; - } - out << "}"; - return out; -} - -template -inline ostream& operator<<(ostream& out, const multimap& m) -{ - out << "{{"; - for (auto it = m.begin(); - it != m.end(); - ++it) { - if (it != m.begin()) out << ","; - out << it->first << "=" << it->second; - } - out << "}}"; - return out; -} - - - - -/* - * comparators for stl containers - */ -// for ceph::unordered_map: -// ceph::unordered_map, eqstr> vals; -struct eqstr -{ - bool operator()(const char* s1, const char* s2) const - { - return strcmp(s1, s2) == 0; - } -}; - -// for set, map -struct ltstr -{ - bool operator()(const char* s1, const char* s2) const - { - return strcmp(s1, s2) < 0; - } -}; - - -namespace ceph { - class Formatter; -} - -#include "encoding.h" - -WRITE_RAW_ENCODER(ceph_fsid) -WRITE_RAW_ENCODER(ceph_file_layout) -WRITE_RAW_ENCODER(ceph_dir_layout) -WRITE_RAW_ENCODER(ceph_mds_session_head) -WRITE_RAW_ENCODER(ceph_mds_request_head_legacy) -WRITE_RAW_ENCODER(ceph_mds_request_head) -WRITE_RAW_ENCODER(ceph_mds_request_release) -WRITE_RAW_ENCODER(ceph_filelock) -WRITE_RAW_ENCODER(ceph_mds_caps_head) -WRITE_RAW_ENCODER(ceph_mds_caps_body_legacy) -WRITE_RAW_ENCODER(ceph_mds_cap_peer) -WRITE_RAW_ENCODER(ceph_mds_cap_release) -WRITE_RAW_ENCODER(ceph_mds_cap_item) -WRITE_RAW_ENCODER(ceph_mds_lease) -WRITE_RAW_ENCODER(ceph_mds_snap_head) -WRITE_RAW_ENCODER(ceph_mds_snap_realm) -WRITE_RAW_ENCODER(ceph_mds_reply_head) -WRITE_RAW_ENCODER(ceph_mds_reply_cap) -WRITE_RAW_ENCODER(ceph_mds_cap_reconnect) -WRITE_RAW_ENCODER(ceph_mds_snaprealm_reconnect) -WRITE_RAW_ENCODER(ceph_frag_tree_split) -WRITE_RAW_ENCODER(ceph_osd_reply_head) -WRITE_RAW_ENCODER(ceph_osd_op) -WRITE_RAW_ENCODER(ceph_msg_header) -WRITE_RAW_ENCODER(ceph_msg_footer) -WRITE_RAW_ENCODER(ceph_msg_footer_old) -WRITE_RAW_ENCODER(ceph_mon_subscribe_item) - -WRITE_RAW_ENCODER(ceph_mon_statfs) -WRITE_RAW_ENCODER(ceph_mon_statfs_reply) - -// ---------------------- -// some basic types - -// NOTE: these must match ceph_fs.h typedefs -typedef uint64_t ceph_tid_t; // transaction id -typedef uint64_t version_t; -typedef __u32 epoch_t; // map epoch (32bits -> 13 epochs/second for 10 years) - -// -------------------------------------- -// identify individual mount clients by 64bit value - -struct client_t { - int64_t v; - - // cppcheck-suppress noExplicitConstructor - client_t(int64_t _v = -2) : v(_v) {} - - void encode(bufferlist& bl) const { - ::encode(v, bl); - } - void decode(bufferlist::iterator& bl) { - ::decode(v, bl); - } -}; -WRITE_CLASS_ENCODER(client_t) - -static inline bool operator==(const client_t& l, const client_t& r) { return l.v == r.v; } -static inline bool operator!=(const client_t& l, const client_t& r) { return l.v != r.v; } -static inline bool operator<(const client_t& l, const client_t& r) { return l.v < r.v; } -static inline bool operator<=(const client_t& l, const client_t& r) { return l.v <= r.v; } -static inline bool operator>(const client_t& l, const client_t& r) { return l.v > r.v; } -static inline bool operator>=(const client_t& l, const client_t& r) { return l.v >= r.v; } - -static inline bool operator>=(const client_t& l, int64_t o) { return l.v >= o; } -static inline bool operator<(const client_t& l, int64_t o) { return l.v < o; } - -inline ostream& operator<<(ostream& out, const client_t& c) { - return out << c.v; -} - - - -// -- - -struct prettybyte_t { - uint64_t v; - // cppcheck-suppress noExplicitConstructor - prettybyte_t(uint64_t _v) : v(_v) {} -}; - -inline ostream& operator<<(ostream& out, const prettybyte_t& b) -{ - uint64_t bump_after = 100; - if (b.v > bump_after << 60) - return out << (b.v >> 60) << " EB"; - if (b.v > bump_after << 50) - return out << (b.v >> 50) << " PB"; - if (b.v > bump_after << 40) - return out << (b.v >> 40) << " TB"; - if (b.v > bump_after << 30) - return out << (b.v >> 30) << " GB"; - if (b.v > bump_after << 20) - return out << (b.v >> 20) << " MB"; - if (b.v > bump_after << 10) - return out << (b.v >> 10) << " kB"; - return out << b.v << " bytes"; -} - -struct si_t { - uint64_t v; - // cppcheck-suppress noExplicitConstructor - si_t(uint64_t _v) : v(_v) {} -}; - -inline ostream& operator<<(ostream& out, const si_t& b) -{ - uint64_t bump_after = 100; - if (b.v > bump_after << 60) - return out << (b.v >> 60) << "E"; - if (b.v > bump_after << 50) - return out << (b.v >> 50) << "P"; - if (b.v > bump_after << 40) - return out << (b.v >> 40) << "T"; - if (b.v > bump_after << 30) - return out << (b.v >> 30) << "G"; - if (b.v > bump_after << 20) - return out << (b.v >> 20) << "M"; - if (b.v > bump_after << 10) - return out << (b.v >> 10) << "k"; - return out << b.v; -} - -struct pretty_si_t { - uint64_t v; - // cppcheck-suppress noExplicitConstructor - pretty_si_t(uint64_t _v) : v(_v) {} -}; - -inline ostream& operator<<(ostream& out, const pretty_si_t& b) -{ - uint64_t bump_after = 100; - if (b.v > bump_after << 60) - return out << (b.v >> 60) << " E"; - if (b.v > bump_after << 50) - return out << (b.v >> 50) << " P"; - if (b.v > bump_after << 40) - return out << (b.v >> 40) << " T"; - if (b.v > bump_after << 30) - return out << (b.v >> 30) << " G"; - if (b.v > bump_after << 20) - return out << (b.v >> 20) << " M"; - if (b.v > bump_after << 10) - return out << (b.v >> 10) << " k"; - return out << b.v << " "; -} - -struct kb_t { - uint64_t v; - // cppcheck-suppress noExplicitConstructor - kb_t(uint64_t _v) : v(_v) {} -}; - -inline ostream& operator<<(ostream& out, const kb_t& kb) -{ - uint64_t bump_after = 100; - if (kb.v > bump_after << 40) - return out << (kb.v >> 40) << " PB"; - if (kb.v > bump_after << 30) - return out << (kb.v >> 30) << " TB"; - if (kb.v > bump_after << 20) - return out << (kb.v >> 20) << " GB"; - if (kb.v > bump_after << 10) - return out << (kb.v >> 10) << " MB"; - return out << kb.v << " kB"; -} - -inline ostream& operator<<(ostream& out, const ceph_mon_subscribe_item& i) -{ - return out << i.start - << ((i.flags & CEPH_SUBSCRIBE_ONETIME) ? "" : "+"); -} - -struct weightf_t { - float v; - // cppcheck-suppress noExplicitConstructor - weightf_t(float _v) : v(_v) {} -}; - -inline ostream& operator<<(ostream& out, const weightf_t& w) -{ - if (w.v < -0.01) { - return out << "-"; - } else if (w.v < 0.000001) { - return out << "0"; - } else { - std::streamsize p = out.precision(); - return out << std::fixed << std::setprecision(5) << w.v << std::setprecision(p); - } -} - -struct shard_id_t { - int8_t id; - - shard_id_t() : id(0) {} - explicit shard_id_t(int8_t _id) : id(_id) {} - - operator int8_t() const { return id; } - - const static shard_id_t NO_SHARD; - - void encode(bufferlist &bl) const { - ::encode(id, bl); - } - void decode(bufferlist::iterator &bl) { - ::decode(id, bl); - } -}; -WRITE_CLASS_ENCODER(shard_id_t) -WRITE_EQ_OPERATORS_1(shard_id_t, id) -WRITE_CMP_OPERATORS_1(shard_id_t, id) -ostream &operator<<(ostream &lhs, const shard_id_t &rhs); - -#if defined(__sun) || defined(_AIX) || defined(DARWIN) || defined(__FreeBSD__) -__s32 ceph_to_hostos_errno(__s32 e); -__s32 hostos_to_ceph_errno(__s32 e); -#else -#define ceph_to_hostos_errno(e) (e) -#define hostos_to_ceph_errno(e) (e) -#endif - -struct errorcode32_t { - int32_t code; - - errorcode32_t() : code(0) {} - // cppcheck-suppress noExplicitConstructor - errorcode32_t(int32_t i) : code(i) {} - - operator int() const { return code; } - int* operator&() { return &code; } - int operator==(int i) { return code == i; } - int operator>(int i) { return code > i; } - int operator>=(int i) { return code >= i; } - int operator<(int i) { return code < i; } - int operator<=(int i) { return code <= i; } - - void encode(bufferlist &bl) const { - __s32 newcode = hostos_to_ceph_errno(code); - ::encode(newcode, bl); - } - void decode(bufferlist::iterator &bl) { - ::decode(code, bl); - code = ceph_to_hostos_errno(code); - } -}; -WRITE_CLASS_ENCODER(errorcode32_t) -WRITE_EQ_OPERATORS_1(errorcode32_t, code) -WRITE_CMP_OPERATORS_1(errorcode32_t, code) - - -#endif