1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     nstd_Printf.h
4 
5   Copyright (C)2009 Nintendo Co., Ltd.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law. They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Rev: 15473 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_NSTD_STRING_H_
17 #define NN_NSTD_STRING_H_
18 
19 #include <nn/types.h>
20 #include <nn/util/detail/util_CLibImpl.h>
21 
22 
23 // TODO: ARMv4/ARMv5 not included in the C version symbol name
24 NN_EXTERN_C void nnnstdMemCpy(void *dstp, const void *srcp, size_t size);
25 NN_EXTERN_C void nnnstdMemMove(void *dstp, const void *srcp, size_t size);
26 
27 #if     defined(NN_PROCESSOR_ARM_V4) || defined(NN_PROCESSOR_ARM_V5)
28     #define NN_NSTD_ARM_NS ARMv4
29 #elif   defined(NN_PROCESSOR_ARM_V6)
30     #define NN_NSTD_ARM_NS ARMv6
31 #else
32     #error processor not selected
33 #endif
34 
35 
36 #ifdef __cplusplus
37 
38 namespace nn { namespace nstd {
39 
40     /* Please see man pages for details
41 
42     */
43     namespace ARMv6
44     {
45         /* Please see man pages for details
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57         */
MemCpy(void * dstp,const void * srcp,size_t size)58         inline void MemCpy(void *dstp, const void *srcp, size_t size)
59         {
60             nnnstdMemCpy(dstp, srcp, size);
61         }
62 
63         /* Please see man pages for details
64 
65 
66 
67 
68 
69 
70 
71 
72 
73         */
MemMove(void * dstp,const void * srcp,size_t size)74         inline void MemMove(void *dstp, const void *srcp, size_t size)
75         {
76             nnnstdMemMove(dstp, srcp, size);
77         }
78     }
79 
80     namespace ARMv4
81     {
82         /* Please see man pages for details
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94         */
MemCpy(void * dstp,const void * srcp,size_t size)95         inline void MemCpy(void *dstp, const void *srcp, size_t size)
96         {
97             nnnstdMemCpy(dstp, srcp, size);
98         }
99 
100         /* Please see man pages for details
101 
102 
103 
104 
105 
106 
107 
108 
109 
110         */
MemMove(void * dstp,const void * srcp,size_t size)111         inline void MemMove(void *dstp, const void *srcp, size_t size)
112         {
113             nnnstdMemMove(dstp, srcp, size);
114         }
115     }
116 
117     using namespace NN_NSTD_ARM_NS;
118 }}
119 
120 #endif
121 
122 #endif /* NN_NSTD_STRING_H_ */
123