summaryrefslogtreecommitdiff
path: root/c_is_no_forth.c
blob: a73f85a7c869fabbca1f4d2cf3b2d4749d192250 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define NEW_NAME NEW_NAME_(__arbitrary_name_, __COUNTER__)
#define NEW_NAME_(x,y) NEW_NAME__(x,y)
#define NEW_NAME__(x,y) x##y

#define WRAP(before, after) WRAP_(before, after, NEW_NAME)

#define WRAP_(before, after, var)     \
	for(int var = ({before; 1;}); \
            var;                      \
	    (after, var = 0)

#define E1000_PHY_CHANGE_REG(hw, reg, var)        \
	WRAP(hw->phy.ops.read_reg(hw, reg, &var), \
	     hw->phy.ops.write_reg(hw, reg, var))