Итак, вам нужно 32-разрядное целое число, а другое 64-разрядное.
Возможно, что int и long одинаковы в вашей архитектуре, и если ваш компилятор поддерживает long long, это может быть 64 бит, в то время как int может быть 32 бит. Проверьте документацию вашего компилятора на предмет его поддержки и наличия расширения (например, некоторые компиляторы могут предоставлять тип __int64). Это может быть то, что вам нужно:
typedef unsigned int WORD;
typedef unsigned long long DWORD;
В любом случае, я бы написал небольшую программу для проверки размеров целых чисел на вашем хосте, чтобы вы могли выбрать правильный, то есть printf sizeof (int), sizeof (long) и так далее. (На хосте sparc значение CHAR_BIT будет равно 8, поэтому по меньшей мере это кратно 8 битам.)
Кроме того, поскольку вы портируете на хост sparc, убедитесь, что ваш код не содержит ошибок в отношении endianess