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