diff options
| author | Michael I. Bushnell <mib@gnu.org> | 1996-04-23 18:00:25 +0000 |
|---|---|---|
| committer | Michael I. Bushnell <mib@gnu.org> | 1996-04-23 18:00:25 +0000 |
| commit | 86bfb36dd0eacd54abe136718bd666e7459105fb (patch) | |
| tree | 5a2922352fbd706cb14f473bf79c5a2bf596d8d3 | |
| parent | 5f9cfa422098196ff6b98656fe192193d4f699bb (diff) | |
(swab_disk): New variable.
(swab_short, swab_long): New functions.
(read_disk_entry, write_disk_entry): New macros.
| -rw-r--r-- | ufs/ufs.h | 31 |
1 files changed, 22 insertions, 9 deletions
@@ -187,19 +187,32 @@ swab_long (long arg) | ((arg & 0xff000000) >> 24)); } -/* Return *ENTRYP, after byteswapping it if necessary */ -#define read_disk_entry(entryp) \ +/* Return ENTRY, after byteswapping it if necessary */ +#define read_disk_entry(entry) \ ({ \ - if (!swab_disk || sizeof (*entryp) == 1) \ - *entryp; \ - else if (sizeof (*entryp) == 2) \ - swab_short (*entryp); \ - else if (sizeof (*entry) == 4) \ - swab_long (*entryp); \ + if (!swab_disk || sizeof (entry) == 1) \ + (entry); \ + else if (sizeof (entry) == 2) \ + swab_short (entry); \ + else if (sizeof (entry) == 4) \ + swab_long (entry); \ else \ - abort; \ + abort (); \ }) +/* Execute A = B, but byteswap it along the way if necessary */ +#define write_disk_entry(a,b) \ +({ \ + if (!swab_disk || sizeof (a) == 1) \ + ((a) = (b)); \ + else if (sizeof (a) == 2) \ + ((a) = (swab_short (b))); \ + else if (sizeof (a) == 4) \ + ((a) = (swab_long (b))); \ + else \ + abort (); \ +}) + |
