8354 sync regcomp(3C) with upstream (fix make catalog)
[unleashed/tickless.git] / usr / src / lib / libast / common / man / swap.3
blob82176de205fc6dbc1ea0f04c5aa61991f5289da3
1 .fp 5 CW
2 .de Af
3 .ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
4 .if !\a\\$4\a\a .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
5 ..
6 .de aF
7 .ie \a\\$3\a\a .ft \\$1
8 .el \{\
9 .ds ;G \&
10 .nr ;G \\n(.f
11 .Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
12 \\*(;G
13 .ft \\n(;G \}
15 .de L
16 .aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
18 .de LR
19 .aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
21 .de RL
22 .aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
24 .de EX          \" start example
25 .ta 1i 2i 3i 4i 5i 6i
26 .PP
27 .RS 
28 .PD 0
29 .ft 5
30 .nf
32 .de EE          \" end example
33 .fi
34 .ft
35 .PD
36 .RE
37 .PP
39 .TH SWAP 3
40 .SH NAME
41 swap \- integral representation conversion routines
42 .SH SYNOPSIS
43 .L "#include <swap.h>"
44 .sp
45 .L "int swapop(const void* internal, const void* external, int width);
46 .L "int_max swapget(int op, const void* from, int width);"
47 .L "void* swapput(int op, void* to, int width, int_max value);"
48 .L "void* swapmem(int op, const void* from, void* to, size_t n);"
49 .SH DESCRIPTION
50 These routines convert integral constants between internal and
51 external representations.
52 They are used to handle binary data generated by foreign programs.
53 New binary data representations should use the compact canonical form
54 provided by the
55 .IR sfio (3)
56 routines
57 .L sfputu
58 and
59 .LR sgetu .
60 .PP
61 .L swapop
62 returns the swap operation required to convert the
63 .L width 
64 byte integer
65 .L external
66 to the
67 .L width
68 byte integer
69 .LR internal .
70 The swap operation is a bit mask:
71 .TP
72 .L 0
73 No swapping necessary.
74 .TP
75 .L 1
76 Swap byte
77 .L 0
78 with byte
79 .LR 1 .
80 .TP
81 .L 2
82 Swap bytes
83 .L 0
84 and
85 .L 1
86 with bytes
87 .L 2
88 and 
89 .LR 3 .
90 .TP
91 .L 4
92 Swap bytes
93 .L 0-3
94 with bytes
95 .LR 4-7 ,
96 and so on.
97 The largest native integral type is defined by the macro
98 .L int_max
99 in the header
100 .L <int.h>
101 described in
102 .IR int (3).
104 .L swapget 
105 returns the
106 .L width
107 byte integer in the buffer
108 .LR from ,
109 swapped according to
110 .LR op .
112 .L swapput 
113 copies the
114 .L width
115 byte integer
116 .L value
117 into the buffer
118 .LR to ,
119 swapped according to
120 .LR op .
121 .L to
122 is returned.
124 .L swapmem
125 swaps 
126 .L n
127 bytes from the buffer
128 .L from
129 to the buffer
130 .L to
131 according to 
132 .LR op .
133 .L to
134 and 
135 .L from
136 may be the same.
137 .SH "SEE ALSO"
138 int(3)