Rev 951 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 951 | Rev 954 | ||
---|---|---|---|
Line 113... | Line 113... | ||
113 | // void *(*agp_alloc_page)(struct agp_bridge_data *); |
113 | // void *(*agp_alloc_page)(struct agp_bridge_data *); |
114 | // void (*agp_destroy_page)(void *); |
114 | // void (*agp_destroy_page)(void *); |
115 | }agp_t;2 |
115 | }agp_t; |
116 | 116 | ||
Line -... | Line 117... | ||
- | 117 | /* |
|
- | 118 | * min()/max() macros that also do |
|
- | 119 | * strict type-checking.. See the |
|
- | 120 | * "unnecessary" pointer comparison. |
|
- | 121 | */ |
|
- | 122 | #define min(x,y) ({ \ |
|
- | 123 | typeof(x) _x = (x); \ |
|
- | 124 | typeof(y) _y = (y); \ |
|
- | 125 | (void) (&_x == &_y); \ |
|
- | 126 | _x < _y ? _x : _y; }) |
|
- | 127 | ||
- | 128 | #define max(x,y) ({ \ |
|
- | 129 | typeof(x) _x = (x); \ |
|
- | 130 | typeof(y) _y = (y); \ |
|
- | 131 | (void) (&_x == &_y); \ |
|
- | 132 | _x > _y ? _x : _y; }) |
|
- | 133 | ||
- | 134 | ||
- | 135 | #define min_t(type,x,y) \ |
|
- | 136 | ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; }) |
|
- | 137 | #define max_t(type,x,y) \ |
|
- | 138 | ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })>>2 |
|
- | 139 | ||
- | 140 |