/[dtapublic]/to_be_filed/uculib01/doc/manual/c_bmf0/c_bmf0.tex
ViewVC logotype

Contents of /to_be_filed/uculib01/doc/manual/c_bmf0/c_bmf0.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 30 - (show annotations) (download) (as text)
Sat Oct 8 07:22:17 2016 UTC (7 years, 8 months ago) by dashley
File MIME type: application/x-tex
File size: 19957 byte(s)
Initial commit.
1 %$Header: /home/dashley/cvsrep/uculib01/uculib01/doc/manual/c_bmf0/c_bmf0.tex,v 1.10 2010/01/28 21:18:32 dashley Exp $
2
3 \chapter{Block Memory Functions}
4
5 \label{cbmf0}
6
7 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10 \section{Introduction and Overview}
11 %Section tag: iov0
12 \label{cbmf0:siov0}
13
14
15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18 \section{Block Clear and Set Functions}
19 %Section tag: bcs0
20 \label{cbmf0:sbcs0}
21
22
23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 %\subsection[\emph{UcuBmMemclrSmNu(\protect\mbox{\protect$\cdot$})}]
27 % {\emph{UcuBmMemclrSmNu(\protect\mbox{\protect\boldmath $\cdot$})}}
28 %%Subsection tag: mcl0
29 %\label{cbmf0:sbcs0:smcl0}
30 %
31 %\index{UcuBmMemclrSmNu()@\emph{UcuBmMemclrSmNu($\cdot$)}}%
32 %
33 %\noindent\textbf{PROTOTYPE}
34 %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
35 %\item
36 %\begin{verbatim}
37 %void UcuBmMemclrSmNu(void *block, UCU_UINT8 dim)
38 %\end{verbatim}
39 %\end{list}
40 %\vspace{2.8ex}
41 %
42 %\noindent\textbf{SYNOPSIS}
43 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
44 %\item
45 %Sets each byte of the memory area \emph{block} to zero,
46 %with \emph{block} consisting of \emph{dim} bytes.
47 %\end{list}
48 %\vspace{2.8ex}
49 %
50 %\noindent\textbf{INPUTS}
51 %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
52 %\item \emph{\textbf{block}}\\
53 % Pointer to the first byte of the memory block whose
54 % bytes are to be set to zero.
55 % No reserved values of this pointer are honored,
56 % so the pointer may not be \emph{NULL} or otherwise invalid
57 % if $dim > 0$.
58 %\item \emph{\textbf{dim}}\\
59 % Number of contiguous bytes in the block, starting at
60 % $array[0]$, to be set to zero.
61 % Zero is a valid value for this parameter; and if this
62 % parameter is zero, \emph{array} will not be dereferenced
63 % (hence the provision above that \emph{array} may be \emph{NULL}
64 % or otherwise invalid only if $dim = 0$).
65 %\end{list}
66 %\vspace{2.8ex}
67 %
68 %\noindent\textbf{OUTPUTS}
69 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
70 %\item None.
71 %\end{list}
72 %\vspace{2.8ex}
73 %
74 %\noindent\textbf{INTERRUPT COMPATIBILITY}
75 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
76 %\item The clearing of each individual byte is atomic
77 % by design, so that an ISR cannot:
78 % \begin{itemize}
79 % \item Obtain an intermediate value of a byte (the byte will
80 % either be its previous value or zero).
81 % \end{itemize}
82 %\item However, the clear operation applied to multiple bytes
83 % is not atomic (an interrupt may occur between the operation on
84 % one byte and the operation on its successor).
85 %\end{list}
86 %
87
88 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
89 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
91 \section{Block Decrement Functions}
92 %Section tag: bdf0
93 \label{cbmf0:sbdf0}
94
95
96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
97 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99 %\subsection[\emph{UcuBmListDecZf8SmNc(\protect\mbox{\protect$\cdot$})}]
100 % {\emph{UcuBmListDecZf8SmNc(\protect\mbox{\protect\boldmath $\cdot$})}}
101 %%Subsection tag: dar0
102 %\label{cbmf0:sbdf0:sdar0}
103 %
104 %\index{UcuBmListDecZf8SmNc()@\emph{UcuBmListDecZf8SmNc($\cdot$)}}%
105 %
106 %\noindent\textbf{PROTOTYPE}
107 %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
108 %\item
109 %\begin{verbatim}
110 %void UcuBmListDecZf8SmNc(UCU_UINT8 *array, UCU_UINT8 dim)
111 %\end{verbatim}
112 %\end{list}
113 %\vspace{2.8ex}
114 %
115 %\noindent\textbf{SYNOPSIS}
116 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
117 %\item
118 %Decrements each of an array \emph{array} of \emph{dim} bytes, but not below zero.
119 %\end{list}
120 %\vspace{2.8ex}
121 %
122 %\noindent\textbf{INPUTS}
123 %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
124 %\item \emph{\textbf{array}}\\
125 % Pointer to the first byte of the array whose elements are to be
126 % decremented. No reserved values of this pointer are honored,
127 % so the pointer may not be \emph{NULL} or otherwise invalid
128 % if $dim > 0$.
129 %\item \emph{\textbf{dim}}\\
130 % Number of contiguous bytes in the array, starting at
131 % $array[0]$, to be decremented but not below zero.
132 % Zero is a valid value for this parameter; and if this
133 % parameter is zero, \emph{array} will not be dereferenced
134 % (hence the provision above that \emph{array} may be \emph{NULL}
135 % or otherwise invalid only if $dim = 0$).
136 %\end{list}
137 %\vspace{2.8ex}
138 %
139 %\noindent\textbf{OUTPUTS}
140 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
141 %\item None.
142 %\end{list}
143 %\vspace{2.8ex}
144 %
145 %\noindent\textbf{INTERRUPT COMPATIBILITY}
146 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
147 %\item The decrement of each individual byte is atomic
148 % by design, so that an ISR cannot:
149 %
150 % \begin{itemize}
151 % \item Obtain a faulty snapshot of an intermediate value of a byte.
152 % \item Corrupt the modification of a byte by writing to the byte.
153 % \end{itemize}
154 %
155 %\item However, the decrement operation applied to multiple bytes
156 % is not atomic (an interrupt may occur between the operation on
157 % one byte and the operation on its successor).
158 %
159 %\item Thus, an ISR may safely set and test the individual byte
160 % values concurrently with nISR software (so long as the nISR
161 % software employs appropriate critical section protocol), but
162 % the ISR may not in general count on relationships between
163 % different bytes in the \emph{array}.
164 %
165 %\item Classic DI/EI critical section protocol is employed because it is unlikely
166 % that this function (because it is an array operation and could have a long
167 % execution time)
168 % will be used from within a larger critical section, and hence a restorative
169 % protocol is perceived to have no advantages.
170 %
171 %\item The DI/EI critical section is just a few machine instructions long
172 % (nearly negligible),
173 % so critical section timing data is not provided.
174 %\end{list}
175 %
176
177 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
178 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
179 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
180 %\subsection[\emph{UcuBmListDecZf16SmNc(\protect\mbox{\protect$\cdot$})}]
181 % {\emph{UcuBmListDecZf16SmNc(\protect\mbox{\protect\boldmath $\cdot$})}}
182 %%Subsection tag: dar1
183 %\label{cbmf0:sbdf0:sdar1}
184 %
185 %\index{UcuBmListDecZf16SmNc()@\emph{UcuBmListDecZf16SmNc($\cdot$)}}%
186 %
187 %\noindent\textbf{PROTOTYPE}
188 %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
189 %\item
190 %\begin{verbatim}
191 %void UcuBmListDecZf16SmNc(UCU_UINT16 *array, UCU_UINT16 dim)
192 %\end{verbatim}
193 %\end{list}
194 %\vspace{2.8ex}
195 %
196 %\noindent\textbf{SYNOPSIS}
197 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
198 %\item
199 %Decrements each of an array \emph{array} of \emph{dim} 16-bit values,
200 %but not below zero. (The storage order of the bytes
201 %within each element of \emph{array} is machine-dependent.)
202 %\end{list}
203 %\vspace{2.8ex}
204 %
205 %\noindent\textbf{INPUTS}
206 %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
207 %\item \emph{\textbf{array}}\\
208 % Pointer to the first 16-bit integer of the array whose elements are to be
209 % decremented. No reserved values of this pointer are honored,
210 % so the pointer may not be \emph{NULL} or otherwise invalid
211 % if $dim > 0$.
212 %\item \emph{\textbf{dim}}\\
213 % Number of contiguous 16-bit values in the array, starting at
214 % $array[0]$, to be decremented but not below zero.
215 % Zero is a valid value for this parameter; and if this
216 % parameter is zero, \emph{array} will not be dereferenced
217 % (hence the provision above that \emph{array} may be \emph{NULL}
218 % or otherwise invalid only if $dim = 0$).
219 %\end{list}
220 %\vspace{2.8ex}
221 %
222 %\noindent\textbf{OUTPUTS}
223 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
224 %\item None.
225 %\end{list}
226 %\vspace{2.8ex}
227 %
228 %\noindent\textbf{INTERRUPT COMPATIBILITY}
229 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
230 %\item The decrement of each individual 16-bit quantity is atomic
231 % by design, so that an ISR cannot:
232 %
233 % \begin{itemize}
234 % \item Obtain a faulty snapshot of an intermediate value of a 16-bit quantity.
235 % \item Corrupt the modification of a 16-bit quantity by writing to it.
236 % \end{itemize}
237 %
238 %\item However, the decrement operation applied to multiple 16-bit quantities
239 % is not atomic (an interrupt may occur between the operation on
240 % one 16-bit quantity and the operation on its successor).
241 %
242 %\item Thus, an ISR may safely set and test the individual 16-bit quantity
243 % values concurrently with nISR software (so long as the nISR
244 % software employs appropriate critical section protocol), but
245 % the ISR may not in general count on relationships between
246 % different 16-bit quantities in the \emph{array}.
247 %
248 %\item Classic DI/EI critical section protocol is employed because it is unlikely
249 % that this function (because it is an array operation and could have a long
250 % execution time)
251 % will be used from within a larger critical section, and hence a restorative
252 % protocol is perceived to have no advantages.
253 %
254 %\item The DI/EI critical section is just a few machine instructions long
255 % (nearly negligible),
256 % so critical section timing data is not provided.
257 %\end{list}
258 %\vspace{2.8ex}
259
260
261 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
262 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
263 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
264 \section{Block Increment Functions}
265 %Section tag: bif0
266 \label{cbmf0:sbif0}
267
268
269 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
270 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
271 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
272 %\subsection[\emph{UcuBmListIncFf8SmNc(\protect\mbox{\protect$\cdot$})}]
273 % {\emph{UcuBmListIncFf8SmNc(\protect\mbox{\protect\boldmath $\cdot$})}}
274 %%Subsection tag: iar0
275 %\label{cbmf0:sibf0:siar0}
276 %
277 %\index{UcuBmListIncFf8SmNc()@\emph{UcuBmListIncFf8SmNc($\cdot$)}}%
278 %
279 %\noindent\textbf{PROTOTYPE}
280 %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
281 %\item
282 %\begin{verbatim}
283 %void UcuBmListIncFf8SmNc(UCU_UINT8 *array, UCU_UINT8 dim)
284 %\end{verbatim}
285 %\end{list}
286 %\vspace{2.8ex}
287 %
288 %\noindent\textbf{SYNOPSIS}
289 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
290 %\item
291 %Increments each of an array \emph{array} of \emph{dim} bytes, but not above \$FF.
292 %\end{list}
293 %\vspace{2.8ex}
294 %
295 %\noindent\textbf{INPUTS}
296 %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
297 %\item \emph{\textbf{array}}\\
298 % Pointer to the first byte of the array whose elements are to be
299 % incremented. No reserved values of this pointer are honored,
300 % so the pointer may not be \emph{NULL} or otherwise invalid
301 % if $dim > 0$.
302 %\item \emph{\textbf{dim}}\\
303 % Number of contiguous bytes in the array, starting at
304 % $array[0]$, to be incremented but not above \$FF.
305 % Zero is a valid value for this parameter; and if this
306 % parameter is zero, \emph{array} will not be dereferenced
307 % (hence the provision above that \emph{array} may be \emph{NULL}
308 % or otherwise invalid only if $dim = 0$).
309 %\end{list}
310 %\vspace{2.8ex}
311 %
312 %\noindent\textbf{OUTPUTS}
313 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
314 %\item None.
315 %\end{list}
316 %\vspace{2.8ex}
317 %
318 %\noindent\textbf{INTERRUPT COMPATIBILITY}
319 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
320 %\item The increment of each individual byte is atomic
321 % by design, so that an ISR cannot:
322 %
323 % \begin{itemize}
324 % \item Obtain a faulty snapshot of an intermediate value of a byte.
325 % \item Corrupt the modification of a byte by writing to the byte.
326 % \end{itemize}
327 %
328 %\item However, the increment operation applied to multiple bytes
329 % is not atomic (an interrupt may occur between the operation on
330 % one byte and the operation on its successor).
331 %
332 %\item Thus, an ISR may safely set and test the individual byte
333 % values concurrently with nISR software (so long as the nISR
334 % software employs appropriate critical section protocol), but
335 % the ISR may not in general count on relationships between
336 % different bytes in the \emph{array}.
337 %
338 %\item Classic DI/EI critical section protocol is employed because it is unlikely
339 % that this function (because it is an array operation and could have a long
340 % execution time)
341 % will be used from within a larger critical section, and hence a restorative
342 % protocol is perceived to have no advantages.
343 %
344 %\item The DI/EI critical section is just a few machine instructions long
345 % (nearly negligible),
346 % so critical section timing data is not provided.
347 %\end{list}
348
349
350 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
351 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
352 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
353 \section{Block Sum and Average Functions}
354 %Section tag: bsa0
355 \label{cbmf0:sbsa0}
356
357
358 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
359 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
360 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
361 \section{Block Shift Functions}
362 %Section tag: bsh0
363 \label{cbmf0:sbsh0}
364
365 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
366 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
367 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
368 %\subsection[\emph{UcuBmMemRshift8SmNc(\protect\mbox{\protect$\cdot$})}]
369 % {\emph{UcuBmMemRshift8SmNc(\protect\mbox{\protect\boldmath $\cdot$})}}
370 %%Subsection tag: mrs0
371 %\label{cbmf0:sibf0:smrs0}
372 %
373 %\index{UcuBmMemRshift8SmNc()@\emph{UcuBmMemRshift8SmNc($\cdot$)}}%
374 %
375 %\noindent\textbf{PROTOTYPE}
376 %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
377 %\item
378 %\begin{verbatim}
379 %void UcuBmMemRshift8SmNc(UCU_UINT8 *block, UCU_UINT8 num)
380 %\end{verbatim}
381 %\end{list}
382 %\vspace{2.8ex}
383 %
384 %\noindent\textbf{SYNOPSIS}
385 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
386 %\item
387 %Shifts \emph{block} of size \emph{num} right by one byte.
388 %
389 %Logically, this function is equivalent to the following assignments:
390 %
391 %\begin{verbatim}
392 %block[num] = block[num-1];
393 %block[num-1] = block[num-2];
394 %...
395 %block[2] = block[1];
396 %block[1] = block[0];
397 %\end{verbatim}
398 %\end{list}
399 %\vspace{2.8ex}
400 %
401 %\noindent\textbf{INPUTS}
402 %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
403 %\item \emph{\textbf{block}}\\
404 % Pointer to the first byte of the block whose elements are to be
405 % shifted right. No reserved values of this pointer are honored,
406 % so the pointer may not be \emph{NULL} or otherwise invalid
407 % if $num > 0$.
408 %\item \emph{\textbf{num}}\\
409 % Number of bytes to be shifted.
410 % Zero is a valid value for this parameter; and if this
411 % parameter is zero, \emph{block} will not be dereferenced
412 % (hence the provision above that \emph{block} may be \emph{NULL}
413 % or otherwise invalid only if $num = 0$).
414 %
415 % As a point of caution, note that the rightmost byte specified
416 % by \emph{block} and \emph{num} is shifted beyond the area
417 % specified, hence it is a logical error to use the size of
418 % an array as \emph{num} (use one less than the size of the
419 % array instead).
420 %
421 %\begin{figure}
422 %\begin{verbatim}
423 %unsigned char buf[BUFSIZE];
424 %
425 %UcuBmMemRshift8SmNc(buf, sizeof(buf)-1);
426 %\end{verbatim}
427 %\caption{Correct Usage of \emph{UcuBmMemRshift8SmNc($\cdot$)} to Shift an Array}
428 %\label{fig:cbmf0:sibf0:smrs0:01}
429 %\end{figure}
430 %
431 % An example of correct usage to shift a \emph{block} right so that
432 % a new value can be placed in \emph{block[0]} is supplied as
433 % Figure \ref{fig:cbmf0:sibf0:smrs0:01}.\\
434 %\end{list}
435 %\vspace{2.8ex}
436 %
437 %\noindent\textbf{OUTPUTS}
438 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
439 %\item None.
440 %\end{list}
441 %\vspace{2.8ex}
442 %
443 %\noindent\textbf{INTERRUPT COMPATIBILITY}
444 %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
445 %\item Each assignment as specified in the synopsis is atomic (although in practice
446 % this is likely to be of little value).
447 %
448 %\item Classic DI/EI critical section protocol is employed because it is unlikely
449 % that this function (because it is an array operation and could have a long
450 % execution time)
451 % will be used from within a larger critical section, and hence a restorative
452 % protocol is perceived to have no advantages.
453 %
454 %\item The DI/EI critical section is just a few machine instructions long
455 % (nearly negligible),
456 % so critical section timing data is not provided.
457 %\end{list}
458 %
459
460 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
461 \noindent\begin{figure}[!b]
462 \noindent\rule[-0.25in]{\textwidth}{1pt}
463 \begin{tiny}
464 \begin{verbatim}
465 $RCSfile: c_bmf0.tex,v $
466 $Source: /home/dashley/cvsrep/uculib01/uculib01/doc/manual/c_bmf0/c_bmf0.tex,v $
467 $Revision: 1.10 $
468 $Author: dashley $
469 $Date: 2010/01/28 21:18:32 $
470 \end{verbatim}
471 \end{tiny}
472 \noindent\rule[0.25in]{\textwidth}{1pt}
473 \end{figure}
474
475 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
476 %$Log: c_bmf0.tex,v $
477 %Revision 1.10 2010/01/28 21:18:32 dashley
478 %a)Chapter start quotes removed.
479 %b)Aesthetic comment line added at the bottom of most files.
480 %
481 %Revision 1.9 2010/01/28 17:35:15 dashley
482 %Unimplemented functions commented out for now.
483 %
484 %Revision 1.8 2010/01/27 16:04:16 dashley
485 %Formatting difficulty corrections.
486 %
487 %Revision 1.7 2007/10/10 19:47:18 dtashley
488 %Edits.
489 %
490 %Revision 1.6 2007/10/10 18:28:33 dtashley
491 %Addition of UcuBmMemclrSmNu() function.
492 %
493 %Revision 1.5 2007/10/10 17:42:27 dtashley
494 %Edits.
495 %
496 %Revision 1.4 2007/10/09 02:11:40 dtashley
497 %Edits.
498 %
499 %Revision 1.3 2007/10/08 19:51:59 dtashley
500 %Edits toward getting function documentation looking good.
501 %
502 %Revision 1.2 2007/10/08 18:16:33 dtashley
503 %Edits.
504 %
505 %Revision 1.1 2007/10/06 16:49:32 dtashley
506 %Initial checkin.
507 %
508 %End of $RCSfile: c_bmf0.tex,v $.
509 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
510

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25