本文整理汇总了C++中bswap_64函数的典型用法代码示例。如果您正苦于以下问题:C++ bswap_64函数的具体用法?C++ bswap_64怎么用?C++ bswap_64使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bswap_64函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: read_weights
// Read weights and load into factor graph
long long read_weights(string filename, dd::FactorGraph &fg)
{
ifstream file;
file.open(filename.c_str(), ios::in | ios::binary);
long long count = 0;
long long id;
bool isfixed;
char padding;
double initial_value;
while (file.good()) {
// read fields
file.read((char *)&id, 8);
file.read((char *)&padding, 1);
if (!file.read((char *)&initial_value, 8)) break;
// convert endian
id = bswap_64(id);
isfixed = padding;
long long tmp = bswap_64(*(uint64_t *)&initial_value);
initial_value = *(double *)&tmp;
// load into factor graph
fg.weights[fg.c_nweight] = dd::Weight(id, initial_value, isfixed);
fg.c_nweight++;
count++;
}
file.close();
return count;
}
示例2: fclose
int eMPEGStreamInformation::load(const char *filename)
{
m_filename = filename;
if (m_structure_read)
fclose(m_structure_read);
m_structure_read = fopen((std::string(m_filename) + ".sc").c_str(), "rb");
FILE *f = fopen((std::string(m_filename) + ".ap").c_str(), "rb");
if (!f)
return -1;
m_access_points.clear();
m_pts_to_offset.clear();
while (1)
{
unsigned long long d[2];
if (fread(d, sizeof(d), 1, f) < 1)
break;
#if BYTE_ORDER == LITTLE_ENDIAN
d[0] = bswap_64(d[0]);
d[1] = bswap_64(d[1]);
#endif
m_access_points[d[0]] = d[1];
m_pts_to_offset.insert(std::pair<pts_t,off_t>(d[1], d[0]));
}
fclose(f);
fixupDiscontinuties();
return 0;
}
示例3: wire_to_host
static fsal_status_t wire_to_host(struct fsal_export *exp_hdl,
fsal_digesttype_t in_type,
struct gsh_buffdesc *fh_desc,
int flags)
{
size_t fh_min;
uint64_t *hashkey;
ushort *len;
fh_min = 1;
if (fh_desc->len < fh_min) {
LogMajor(COMPONENT_FSAL,
"Size mismatch for handle. should be >= %zu, got %zu",
fh_min, fh_desc->len);
return fsalstat(ERR_FSAL_SERVERFAULT, 0);
}
hashkey = (uint64_t *)fh_desc->addr;
len = (ushort *)((char *)hashkey + sizeof(uint64_t));
if (flags & FH_FSAL_BIG_ENDIAN) {
#if (BYTE_ORDER != BIG_ENDIAN)
*len = bswap_16(*len);
*hashkey = bswap_64(*hashkey);
#endif
} else {
#if (BYTE_ORDER == BIG_ENDIAN)
*len = bswap_16(*len);
*hashkey = bswap_64(*hashkey);
#endif
}
return fsalstat(ERR_FSAL_NO_ERROR, 0);
}
示例4: read_factors
long long read_factors(string filename, dd::FactorGraph &fg)
{
ifstream file;
file.open(filename.c_str(), ios::in | ios::binary);
long long count = 0;
long long id;
long long weightid;
short type;
long long edge_count;
while (file.good()) {
file.read((char *)&id, 8);
file.read((char *)&weightid, 8);
file.read((char *)&type, 2);
if (!file.read((char *)&edge_count, 8)) break;
id = bswap_64(id);
weightid = bswap_64(weightid);
type = bswap_16(type);
edge_count = bswap_64(edge_count);
count++;
fg.factors[fg.c_nfactor] = dd::Factor(id, weightid, type, edge_count);
fg.c_nfactor ++;
}
file.close();
return count;
}
示例5: FC_ASSERT
int64_t bigint::to_int64() const
{
FC_ASSERT(BN_num_bits(n) <= 63);
size_t size = BN_num_bytes(n);
uint64_t abs_value = 0;
BN_bn2bin(n, (unsigned char*)&abs_value + (sizeof(uint64_t) - size));
return BN_is_negative(n) ? -(int64_t)bswap_64(abs_value) : bswap_64(abs_value);
}
示例6: ocfs2_swap_extent_block_header
static void ocfs2_swap_extent_block_header(struct ocfs2_extent_block *eb)
{
eb->h_suballoc_slot = bswap_16(eb->h_suballoc_slot);
eb->h_suballoc_bit = bswap_16(eb->h_suballoc_bit);
eb->h_fs_generation = bswap_32(eb->h_fs_generation);
eb->h_blkno = bswap_64(eb->h_blkno);
eb->h_next_leaf_blk = bswap_64(eb->h_next_leaf_blk);
}
示例7: switch
void Memcached::dump_extra(const PacketHeader *header, const unsigned char *b, size_t len)
{
static char extra[1024];
switch (header->opcode_) {
case MC_GET:
case MC_GETQ:
case MC_GETK:
case MC_GETKQ:
snprintf(extra, sizeof(extra),
"extra: { "
"flags: 0x%x "
"}\n",
bswap_32(*reinterpret_cast<const uint32_t*>(b)));
break;
case MC_SET:
case MC_ADD:
case MC_REP:
case MC_SETQ:
case MC_ADDQ:
case MC_REPQ:
snprintf(extra, sizeof(extra),
"extra: { "
"flags: 0x%x, "
"expire: %d "
"}\n",
bswap_32(*reinterpret_cast<const uint32_t*>(b)),
bswap_32(*reinterpret_cast<const int32_t*>(b + 4)));
break;
case MC_INC:
case MC_DEC:
case MC_INCQ:
case MC_DECQ:
snprintf(extra, sizeof(extra),
"extra: { "
"delta: %lu, "
"init: %lu, "
"expire: %d "
"}\n",
bswap_64(*reinterpret_cast<const uint64_t*>(b)),
bswap_64(*reinterpret_cast<const uint64_t*>(b + 8)),
bswap_32(*reinterpret_cast<const int32_t*>(b + 12)));
break;
case MC_FLUSH:
case MC_FLUSHQ:
case MC_TOUCH:
case MC_GAT:
case MC_GATQ:
snprintf(extra, sizeof(extra),
"extra: { "
"expire: %d "
"}\n",
bswap_32(*reinterpret_cast<const int32_t*>(b)));
break;
}
fprintf(stdout, "%s\n", extra);
}
示例8: store_chunk
static void store_chunk(struct analyze_ctx *analyze,
const struct scan_chunk_data *chunk_data) {
int i;
sha256_ctx sha256;
unsigned char sha256_digest[32];
char sha256_digest_string[65];
int chunk_size = 0;
sha256_init(&sha256);
for (i=0; i<2; i++) {
chunk_size += chunk_data[i].size;
if (chunk_data[i].buf && chunk_data[i].size)
sha256_update(&sha256, chunk_data[i].buf, chunk_data[i].size);
}
sha256_final(&sha256, sha256_digest);
sprintf(sha256_digest_string, "%016" PRIx64
"%016" PRIx64
"%016" PRIx64
"%016" PRIx64,
bswap_64(*(uint64_t *)&sha256_digest[0]),
bswap_64(*(uint64_t *)&sha256_digest[8]),
bswap_64(*(uint64_t *)&sha256_digest[16]),
bswap_64(*(uint64_t *)&sha256_digest[24]));
if (sqlite3_bind_text(analyze->db_insert_stmt, 1, sha256_digest_string, -1,
SQLITE_STATIC) != SQLITE_OK) {
print_sqlite3_error(analyze->db);
abort();
}
if (sqlite3_bind_int64(analyze->db_insert_stmt, 3, analyze->offset) !=
SQLITE_OK) {
print_sqlite3_error(analyze->db);
abort();
}
if (sqlite3_bind_int(analyze->db_insert_stmt, 4, chunk_size) != SQLITE_OK) {
print_sqlite3_error(analyze->db);
abort();
}
if (sqlite3_step(analyze->db_insert_stmt) != SQLITE_DONE) {
print_sqlite3_error(analyze->db);
abort();
}
if (sqlite3_reset(analyze->db_insert_stmt) != SQLITE_OK) {
print_sqlite3_error(analyze->db);
abort();
}
#if 0
printf("%016lx%016lx%016lx%016lx %d\n",
bswap64(*(uint64_t *)&sha256_digest[0]),
bswap64(*(uint64_t *)&sha256_digest[8]),
bswap64(*(uint64_t *)&sha256_digest[16]),
bswap64(*(uint64_t *)&sha256_digest[24]),
chunk_size);
#endif
analyze->offset += chunk_size;
}
示例9: ocfs2_swap_disk_heartbeat_block
void ocfs2_swap_disk_heartbeat_block(struct o2hb_disk_heartbeat_block *hb)
{
if (cpu_is_little_endian)
return;
hb->hb_seq = bswap_64(hb->hb_seq);
hb->hb_cksum = bswap_32(hb->hb_cksum);
hb->hb_generation = bswap_64(hb->hb_generation);
hb->hb_dead_ms = bswap_32(hb->hb_dead_ms);
}
示例10: ocfs2_swap_group_desc_header
static void ocfs2_swap_group_desc_header(struct ocfs2_group_desc *gd)
{
gd->bg_size = bswap_16(gd->bg_size);
gd->bg_bits = bswap_16(gd->bg_bits);
gd->bg_free_bits_count = bswap_16(gd->bg_free_bits_count);
gd->bg_chain = bswap_16(gd->bg_chain);
gd->bg_generation = bswap_32(gd->bg_generation);
gd->bg_next_group = bswap_64(gd->bg_next_group);
gd->bg_parent_dinode = bswap_64(gd->bg_parent_dinode);
gd->bg_blkno = bswap_64(gd->bg_blkno);
}
示例11: KColumnIdx1Swap
static
void KColumnIdx1Swap ( KColBlockLoc *buffer, uint32_t count )
{
uint32_t i;
for ( i = 0; i < count; ++ i )
{
buffer [ i ] . pg = bswap_64 ( buffer [ i ] . pg );
buffer [ i ] . u . gen = bswap_32 ( buffer [ i ] . u . gen );
buffer [ i ] . id_range = bswap_32 ( buffer [ i ] . id_range );
buffer [ i ] . start_id = bswap_64 ( buffer [ i ] . start_id );
}
}
示例12: write_u64
int
write_u64(FILE*ofile,u64_t*buffer,size_t count)
{
size_t i;
int res;
for(i= 0;i<count;i++)
buffer[i]= bswap_64(buffer[i]);
res= fwrite(buffer,sizeof(*buffer),count,ofile);
for(i= 0;i<count;i++)
buffer[i]= bswap_64(buffer[i]);
return res;
}
示例13: bswap_64
void eMPEGStreamInformation::writeStructureEntry(off_t offset, structure_data data)
{
unsigned long long d[2];
#if BYTE_ORDER == BIG_ENDIAN
d[0] = offset;
d[1] = data;
#else
d[0] = bswap_64(offset);
d[1] = bswap_64(data);
#endif
if (m_structure_write)
fwrite(d, sizeof(d), 1, m_structure_write);
}
示例14: ocfs2_swap_group_desc
void ocfs2_swap_group_desc(struct ocfs2_group_desc *gd)
{
if (cpu_is_little_endian)
return;
gd->bg_size = bswap_16(gd->bg_size);
gd->bg_bits = bswap_16(gd->bg_bits);
gd->bg_free_bits_count = bswap_16(gd->bg_free_bits_count);
gd->bg_chain = bswap_16(gd->bg_chain);
gd->bg_generation = bswap_32(gd->bg_generation);
gd->bg_next_group = bswap_64(gd->bg_next_group);
gd->bg_parent_dinode = bswap_64(gd->bg_parent_dinode);
gd->bg_blkno = bswap_64(gd->bg_blkno);
}
示例15: read_edges
long long read_edges(string filename, dd::FactorGraph &fg)
{
ifstream file;
file.open(filename.c_str(), ios::in | ios::binary);
long long count = 0;
long long variable_id;
long long factor_id;
long long position;
bool ispositive;
char padding;
long long equal_predicate;
while (file.good()) {
// read fields
file.read((char *)&variable_id, 8);
file.read((char *)&factor_id, 8);
file.read((char *)&position, 8);
file.read((char *)&padding, 1);
if (!file.read((char *)&equal_predicate, 8)) break;
variable_id = bswap_64(variable_id);
factor_id = bswap_64(factor_id);
position = bswap_64(position);
ispositive = padding;
equal_predicate = bswap_64(equal_predicate);
count++;
// wrong id
if(variable_id >= fg.n_var || variable_id < 0){
assert(false);
}
if(factor_id >= fg.n_factor || factor_id < 0){
std::cout << "wrong fid = " << factor_id << std::endl;
assert(false);
}
// add variables to factors
if (fg.variables[variable_id].domain_type == DTYPE_BOOLEAN) {
fg.factors[factor_id].tmp_variables.push_back(
dd::VariableInFactor(variable_id, fg.variables[variable_id].upper_bound, variable_id, position, ispositive));
} else {
fg.factors[factor_id].tmp_variables.push_back(
dd::VariableInFactor(variable_id, position, ispositive, equal_predicate));
}
fg.variables[variable_id].tmp_factor_ids.push_back(factor_id);
}
file.close();
return count;
}