1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. 4 * All rights reserved. 5 * 6 * Purpose: define basic common types and macros 7 * 8 * Author: Tevin Chen 9 * 10 * Date: May 21, 1996 11 * 12 */ 13 14 #ifndef __TMACRO_H__ 15 #define __TMACRO_H__ 16 17 /****** Common helper macros ***********************************************/ 18 19 #if !defined(LOBYTE) 20 #define LOBYTE(w) ((unsigned char)(w)) 21 #endif 22 #if !defined(HIBYTE) 23 #define HIBYTE(w) ((unsigned char)(((unsigned short)(w) >> 8) & 0xFF)) 24 #endif 25 26 #if !defined(LOWORD) 27 #define LOWORD(d) ((unsigned short)(d)) 28 #endif 29 #if !defined(HIWORD) 30 #define HIWORD(d) ((unsigned short)((((unsigned long)(d)) >> 16) & 0xFFFF)) 31 #endif 32 33 #define LODWORD(q) ((q).u.dwLowDword) 34 #define HIDWORD(q) ((q).u.dwHighDword) 35 36 #if !defined(MAKEWORD) 37 #define MAKEWORD(lb, hb) ((unsigned short)(((unsigned char)(lb)) | (((unsigned short)((unsigned char)(hb))) << 8))) 38 #endif 39 #if !defined(MAKEDWORD) 40 #define MAKEDWORD(lw, hw) ((unsigned long)(((unsigned short)(lw)) | (((unsigned long)((unsigned short)(hw))) << 16))) 41 #endif 42 43 #endif /* __TMACRO_H__ */ 44