1313
return read_index_from(istate, get_index_file());
1314
}
1315
1316
-#ifndef NEEDS_ALIGNED_ACCESS
1317
-#define ntoh_s(var) ntohs(var)
1318
-#define ntoh_l(var) ntohl(var)
1319
-#else
1320
-static inline uint16_t ntoh_s_force_align(void *p)
1321
-{
1322
- uint16_t x;
1323
- memcpy(&x, p, sizeof(x));
1324
- return ntohs(x);
1325
-}
1326
-static inline uint32_t ntoh_l_force_align(void *p)
1327
-{
1328
- uint32_t x;
1329
- memcpy(&x, p, sizeof(x));
1330
- return ntohl(x);
1331
-}
1332
-#define ntoh_s(var) ntoh_s_force_align(&(var))
1333
-#define ntoh_l(var) ntoh_l_force_align(&(var))
1334
-#endif
1335
-
1316
static struct cache_entry *cache_entry_from_ondisk(struct ondisk_cache_entry *ondisk,
1317
unsigned int flags,
1318
const char *name,
1320
{
1321
struct cache_entry *ce = xmalloc(cache_entry_size(len));
1322
1343
- ce->ce_stat_data.sd_ctime.sec = ntoh_l(ondisk->ctime.sec);
1344
- ce->ce_stat_data.sd_mtime.sec = ntoh_l(ondisk->mtime.sec);
1345
- ce->ce_stat_data.sd_ctime.nsec = ntoh_l(ondisk->ctime.nsec);
1346
- ce->ce_stat_data.sd_mtime.nsec = ntoh_l(ondisk->mtime.nsec);
1347
- ce->ce_stat_data.sd_dev = ntoh_l(ondisk->dev);
1348
- ce->ce_stat_data.sd_ino = ntoh_l(ondisk->ino);
1349
- ce->ce_mode = ntoh_l(ondisk->mode);
1350
- ce->ce_stat_data.sd_uid = ntoh_l(ondisk->uid);
1351
- ce->ce_stat_data.sd_gid = ntoh_l(ondisk->gid);
1352
- ce->ce_stat_data.sd_size = ntoh_l(ondisk->size);
1323
+ ce->ce_stat_data.sd_ctime.sec = get_be32(&ondisk->ctime.sec);
1324
+ ce->ce_stat_data.sd_mtime.sec = get_be32(&ondisk->mtime.sec);
1325
+ ce->ce_stat_data.sd_ctime.nsec = get_be32(&ondisk->ctime.nsec);
1326
+ ce->ce_stat_data.sd_mtime.nsec = get_be32(&ondisk->mtime.nsec);
1327
+ ce->ce_stat_data.sd_dev = get_be32(&ondisk->dev);
1328
+ ce->ce_stat_data.sd_ino = get_be32(&ondisk->ino);
1329
+ ce->ce_mode = get_be32(&ondisk->mode);
1330
+ ce->ce_stat_data.sd_uid = get_be32(&ondisk->uid);
1331
+ ce->ce_stat_data.sd_gid = get_be32(&ondisk->gid);
1332
+ ce->ce_stat_data.sd_size = get_be32(&ondisk->size);
1333
ce->ce_flags = flags & ~CE_NAMEMASK;
1334
ce->ce_namelen = len;
1335
hashcpy(ce->sha1, ondisk->sha1);
1369
unsigned int flags;
1370
1371
/* On-disk flags are just 16 bits */
1392
- flags = ntoh_s(ondisk->flags);
1372
+ flags = get_be16(&ondisk->flags);
1373
len = flags & CE_NAMEMASK;
1374
1375
if (flags & CE_EXTENDED) {
1376
struct ondisk_cache_entry_extended *ondisk2;
1377
int extended_flags;
1378
ondisk2 = (struct ondisk_cache_entry_extended *)ondisk;
1399
- extended_flags = ntoh_s(ondisk2->flags2) << 16;
1379
+ extended_flags = get_be16(&ondisk2->flags2) << 16;
1380
/* We do not yet understand any bit out of CE_EXTENDED_FLAGS */
1381
if (extended_flags & ~CE_EXTENDED_FLAGS)
1382
die("Unknown index entry format %08x", extended_flags);