-/* We allocate memory for tables on first use, instead of using
- * static buffers - ~70k of statics is not NOMMU-friendly. */
-
-struct crypt_data {
- u_int32_t saltbits; /* referenced 5 times */
- u_int32_t old_salt; /* 3 times */
- u_int32_t old_rawkey0, old_rawkey1; /* 3 times each */
- u_char un_pbox[32]; /* 2 times */
- u_char inv_comp_perm[56]; /* 3 times */
- u_char inv_key_perm[64]; /* 3 times */
- char des_initialised; /* 2 times */
- char __des_crypt_out[21]; /* private buffer for __des_crypt() */
- u_int32_t en_keysl[16], en_keysr[16]; /* 2 times each */
- u_int32_t de_keysl[16], de_keysr[16]; /* 2 times each */
- u_int32_t ip_maskl[8][256], ip_maskr[8][256]; /* 9 times each */
- u_int32_t fp_maskl[8][256], fp_maskr[8][256]; /* 9 times each */
- u_int32_t key_perm_maskl[8][128], key_perm_maskr[8][128]; /* 9 times */
- u_int32_t comp_maskl[8][128], comp_maskr[8][128]; /* 9 times each */
-};
-static struct crypt_data *__uc_des_data;
-#define D (*__uc_des_data)
-#define saltbits (D.saltbits )
-#define old_salt (D.old_salt )
-#define old_rawkey0 (D.old_rawkey0 )
-#define old_rawkey1 (D.old_rawkey1 )
-#define un_pbox (D.un_pbox )
-#define inv_comp_perm (D.inv_comp_perm )
-#define inv_key_perm (D.inv_key_perm )
-#define des_initialised (D.des_initialised)
-#define __des_crypt_out (D.__des_crypt_out)
-#define en_keysl (D.en_keysl )
-#define en_keysr (D.en_keysr )
-#define de_keysl (D.de_keysl )
-#define de_keysr (D.de_keysr )
-#define ip_maskl (D.ip_maskl )
-#define ip_maskr (D.ip_maskr )
-#define fp_maskl (D.fp_maskl )
-#define fp_maskr (D.fp_maskr )
-#define key_perm_maskl (D.key_perm_maskl )
-#define key_perm_maskr (D.key_perm_maskr )
-#define comp_maskl (D.comp_maskl )
-#define comp_maskr (D.comp_maskr )
+/* Re-entrantify me -- all this junk needs to be in
+ * struct crypt_data to make this really reentrant... */
+static u_char inv_key_perm[64];
+static u_char inv_comp_perm[56];
+static u_char un_pbox[32];
+static u_int32_t en_keysl[16], en_keysr[16];
+static u_int32_t de_keysl[16], de_keysr[16];
+static u_int32_t ip_maskl[8][256], ip_maskr[8][256];
+static u_int32_t fp_maskl[8][256], fp_maskr[8][256];
+static u_int32_t key_perm_maskl[8][128], key_perm_maskr[8][128];
+static u_int32_t comp_maskl[8][128], comp_maskr[8][128];
+static u_int32_t saltbits;
+static u_int32_t old_salt;
+static u_int32_t old_rawkey0, old_rawkey1;
+