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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 30 - (hide annotations) (download) (as text)
Sat Oct 8 07:22:17 2016 UTC (7 years, 5 months ago) by dashley
File MIME type: application/x-tex
File size: 19957 byte(s)
Initial commit.
1 dashley 30 %$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