| /* |
| * This file is part of the coreboot project. |
| * |
| * Copyright 2014 Google Inc. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; version 2 of the License. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| #ifndef __TEGRA_MISC_TYPES_H__ |
| #define __TEGRA_MISC_TYPES_H__ |
| |
| #define EFAULT 1 |
| #define EINVAL 2 |
| #define ETIMEDOUT 3 |
| #define ENOSPC 4 |
| #define ENOSYS 5 |
| #define EPTR 6 |
| |
| #define IS_ERR_PTR(ptr) \ |
| (ptr == (void *)-EPTR) |
| |
| #ifndef bool |
| #define bool int |
| #endif |
| |
| #ifndef false |
| #define false 0 |
| #endif |
| |
| #ifndef true |
| #define true 1 |
| #endif |
| |
| #ifndef container_of |
| /** |
| * container_of - cast a member of a structure out to the containing structure |
| * @ptr: the pointer to the member. |
| * @type: the type of the container struct this is embedded in. |
| * @member: the name of the member within the struct. |
| * |
| */ |
| #define container_of(ptr, type, member) ({ \ |
| const typeof( ((type *)0)->member ) *__mptr = (ptr); \ |
| (type *)( (char *)__mptr - offsetof(type,member) );}) |
| #endif |
| |
| #define DIV_ROUND_UP(x, y) (((x) + (y) - 1) / (y)) |
| |
| /* |
| * Divide positive or negative dividend by positive divisor and round |
| * to closest integer. Result is undefined for negative divisors and |
| * for negative dividends if the divisor variable type is unsigned. |
| */ |
| #define DIV_ROUND_CLOSEST(x, divisor)( \ |
| { \ |
| typeof(x) __x = x; \ |
| typeof(divisor) __d = divisor; \ |
| (((typeof(x))-1) > 0 || \ |
| ((typeof(divisor))-1) > 0 || (__x) > 0) ? \ |
| (((__x) + ((__d) / 2)) / (__d)) : \ |
| (((__x) - ((__d) / 2)) / (__d)); \ |
| } \ |
| ) |
| |
| #endif /* __TEGRA_MISC_TYPES_H__ */ |