19a747e4fSDavid du Colombier #include <u.h> 29a747e4fSDavid du Colombier #include <libc.h> 39a747e4fSDavid du Colombier #include <thread.h> 49a747e4fSDavid du Colombier 59a747e4fSDavid du Colombier static Lock l; 69a747e4fSDavid du Colombier 79a747e4fSDavid du Colombier void _xinc(long * p)8*ab3dc52fSDavid du Colombier_xinc(long *p) 9*ab3dc52fSDavid du Colombier { 109a747e4fSDavid du Colombier 119a747e4fSDavid du Colombier lock(&l); 129a747e4fSDavid du Colombier (*p)++; 139a747e4fSDavid du Colombier unlock(&l); 149a747e4fSDavid du Colombier } 159a747e4fSDavid du Colombier 169a747e4fSDavid du Colombier long _xdec(long * p)17*ab3dc52fSDavid du Colombier_xdec(long *p) 18*ab3dc52fSDavid du Colombier { 199a747e4fSDavid du Colombier long r; 209a747e4fSDavid du Colombier 219a747e4fSDavid du Colombier lock(&l); 229a747e4fSDavid du Colombier r = --(*p); 239a747e4fSDavid du Colombier unlock(&l); 249a747e4fSDavid du Colombier return r; 259a747e4fSDavid du Colombier } 26