at v3.12 39 lines 812 B view raw
1/* 2 * Copyright IBM Corp. 2007, 2012 3 * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> 4 */ 5#ifndef _ASM_S390_CHPID_H 6#define _ASM_S390_CHPID_H 7 8#include <uapi/asm/chpid.h> 9#include <asm/cio.h> 10 11static inline void chp_id_init(struct chp_id *chpid) 12{ 13 memset(chpid, 0, sizeof(struct chp_id)); 14} 15 16static inline int chp_id_is_equal(struct chp_id *a, struct chp_id *b) 17{ 18 return (a->id == b->id) && (a->cssid == b->cssid); 19} 20 21static inline void chp_id_next(struct chp_id *chpid) 22{ 23 if (chpid->id < __MAX_CHPID) 24 chpid->id++; 25 else { 26 chpid->id = 0; 27 chpid->cssid++; 28 } 29} 30 31static inline int chp_id_is_valid(struct chp_id *chpid) 32{ 33 return (chpid->cssid <= __MAX_CSSID); 34} 35 36 37#define chp_id_for_each(c) \ 38 for (chp_id_init(c); chp_id_is_valid(c); chp_id_next(c)) 39#endif /* _ASM_S390_CHPID_H */