1.msgr.h檔案:定義訊息傳輸層的資料型別,以供ceph使用
(1)預設的監控埠:
#define ceph_mon_port 6789
(2)客戶端處理埠範圍定義:
#define ceph_port_first 6789//監控
#define ceph_port_start 6800 //開始
#define ceph_port_last 6900//結束
(3)tcp協議標識和版本資訊:
#define ceph_banner "ceph v027"
#define ceph_banner_max_len 30//最大長度
(4)ceph中的實體名稱:在網路傳輸中使用,例如mds0表示元資料伺服器0
struct ceph_entity_name __attribute__ ((packed));//按照緊湊模式分配記憶體,而不是記憶體對齊
#define ceph_entity_type_mon 0x01//監控伺服器實體
#define ceph_entity_type_mds 0x02//元資料伺服器實體
#define ceph_entity_type_osd 0x04//物件儲存裝置實體
#define ceph_entity_type_client 0x08//客戶端實體
#define ceph_entity_type_auth 0x20//許可權實體
#define ceph_entity_type_any 0xff//任何
同時提供乙個函式用於將型別轉換為名字字串的函式如下:
const char *ceph_entity_type_name(int type)
}
(5)實體網路位址以及與名字實體的對應關係結構體
struct ceph_entity_addr __attribute__ ((packed));
struct ceph_entity_inst __attribute__ ((packed));
(6)訊息交換協議定義:
#define ceph_msgr_tag_ready 1 /* server->client: ready for messages */
#define ceph_msgr_tag_resetsession 2 /* server->client: reset, try again */
#define ceph_msgr_tag_wait 3 /* server->client: wait for racing
incoming connection */
#define ceph_msgr_tag_retry_session 4 /* server->client + cseq: try again
with higher cseq */
#define ceph_msgr_tag_retry_global 5 /* server->client + gseq: try again
with higher gseq */
#define ceph_msgr_tag_close 6 /* closing pipe */
#define ceph_msgr_tag_msg 7 /* message */
#define ceph_msgr_tag_ack 8 /* message ack */
#define ceph_msgr_tag_keepalive 9 /* just a keepalive byte! */
#define ceph_msgr_tag_badprotover 10 /* bad protocol version */
#define ceph_msgr_tag_badauthorizer 11 /* bad authorizer */
#define ceph_msgr_tag_features 12 /* insufficient features */
#define ceph_msgr_tag_seq 13 /* 64-bit int follows with seen seq number */
(7)連線協商
struct ceph_msg_connect __attribute__ ((packed));
struct ceph_msg_connect_reply __attribute__ ((packed));
#define ceph_msg_connect_lossy 1 /* messages i send may be safely dropped */
(8)訊息頭部結構:有老的
struct ceph_msg_header_old __attribute__ ((packed));
struct ceph_msg_header __attribute__ ((packed));
#define ceph_msg_prio_low 64
#define ceph_msg_prio_default 127
#define ceph_msg_prio_high 196
#define ceph_msg_prio_highest 255
(9)資料有效載荷結構
struct ceph_msg_footer __attribute__ ((packed));
#define ceph_msg_footer_complete (1<<0) /* msg wasn't aborted */
#define ceph_msg_footer_nocrc (1<<1) /* no data crc */
驅動主要資料結構
驅動物件 driver object typedef struct driver object driver object typedef struct driver object pdriver object n is 結構圖 裝置物件 deviceobject typedef struct de...
QuotationTool 主要資料結構
那麼我們希望讀出來的資料是這個什麼樣子呢?也就是資料結構是怎麼樣的?既然excel是個二維 那麼讀出來的數也放在乙個二維 裡面得了。我們乙個簡化版的例子來看,下面的 是從原始 中截出來的一部分。產品編碼 產品型號 數量標準價 rmb 0235a0w2 rt msr5660 250000 這樣的缺點在...
資料結構 1
線性結構 線性表,棧,佇列,串。線性結構特點 結構中的資料元素之間存在一對一的線性關係。線性表 線性表 最簡單 最基本 最常用的資料結構。操作不受限定。順序表 用順序儲存方式的線性表叫順序表。線性表的順序儲存方式 在記憶體中用一塊位址連續的空間一次存放線性表的資料元素。特點 表中相鄰的資料元素在記憶...