sparse_defs.h revision 28fa5bc347390480fe190294c6c385b6a9f0d68b
128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross/* 228fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * Copyright (C) 2010 The Android Open Source Project 328fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * 428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * Licensed under the Apache License, Version 2.0 (the "License"); 528fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * you may not use this file except in compliance with the License. 628fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * You may obtain a copy of the License at 728fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * 828fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * http://www.apache.org/licenses/LICENSE-2.0 928fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * 1028fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * Unless required by applicable law or agreed to in writing, software 1128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * distributed under the License is distributed on an "AS IS" BASIS, 1228fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1328fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * See the License for the specific language governing permissions and 1428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * limitations under the License. 1528fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross */ 1628fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 1728fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#ifndef _LIBSPARSE_SPARSE_DEFS_ 1828fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define _LIBSPARSE_SPARSE_DEFS_ 1928fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 2028fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#include <errno.h> 2128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#include <stdio.h> 2228fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 2328fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __le64 u64 2428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __le32 u32 2528fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __le16 u16 2628fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 2728fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __be64 u64 2828fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __be32 u32 2928fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __be16 u16 3028fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 3128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __u64 u64 3228fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __u32 u32 3328fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __u16 u16 3428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define __u8 u8 3528fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 3628fa5bc347390480fe190294c6c385b6a9f0d68bColin Crosstypedef unsigned long long u64; 3728fa5bc347390480fe190294c6c385b6a9f0d68bColin Crosstypedef signed long long s64; 3828fa5bc347390480fe190294c6c385b6a9f0d68bColin Crosstypedef unsigned int u32; 3928fa5bc347390480fe190294c6c385b6a9f0d68bColin Crosstypedef unsigned short int u16; 4028fa5bc347390480fe190294c6c385b6a9f0d68bColin Crosstypedef unsigned char u8; 4128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 4228fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define DIV_ROUND_UP(x, y) (((x) + (y) - 1)/(y)) 4328fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define ALIGN(x, y) ((y) * DIV_ROUND_UP((x), (y))) 4428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 4528fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define error(fmt, args...) do { fprintf(stderr, "error: %s: " fmt "\n", __func__, ## args); } while (0) 4628fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define error_errno(s, args...) error(s ": %s", ##args, strerror(errno)) 4728fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 4828fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#endif 49