memory.c
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:4k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. /*++
  2. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. PARTICULAR PURPOSE.
  6. Copyright (c) 2002. Samsung Electronics, co. ltd  All rights reserved.
  7. Module Name:  
  8. Abstract:  
  9.    Platform dependent PCMCIA memory and I/O access functions
  10. Rev:
  11. 2001.12.21 : Debug messages (kwangyoon LEE, kwangyoon@samsung.com)
  12.    
  13. Notes: 
  14. --*/
  15. #include <windows.h>
  16. #include <types.h>
  17. #include <cardserv.h>
  18. #include <sockserv.h>
  19. #include <sockpd.h>
  20. //
  21. // PDCardReadAttrByte
  22. //
  23. // @func    UINT8 | PDCardReadAttrByte | Read the byte at the specified offset in a card's
  24. //                                       attribute memory space.
  25. // @rdesc   Returns the byte read.
  26. //
  27. // @comm    This function should be called within a try/except statement in case the
  28. // card is removed and the memory access results in a fault.  Card services calls
  29. // PDCardReadAttrByte within a try/except clause in its <f CardReadAttrByte> function.
  30. //
  31. // @xref <f PDCardWriteAttrByte> <f PDCardReadCmnByte> <f PDCardWriteCmnByte>
  32. //       <f PDCardReadIOByte> <f PDCardWriteIOByte>
  33. //
  34. UINT8
  35. PDCardReadAttrByte(
  36.     PVOID pCardMem,     // @parm Pointer to PC card attribute memory obtained from <f CardMapMemory>
  37.     UINT32 uOffset      // @parm Offset into card's attribute memory
  38.     )
  39. {
  40.     UINT8 uByte;
  41.     PUCHAR pAttr = (PUCHAR)pCardMem;
  42.     pAttr += uOffset * 2;
  43.     uByte = *pAttr;
  44.     return uByte;
  45. }
  46. //
  47. // PDCardWriteAttrByte
  48. //
  49. // @func    VOID | PDCardWriteAttrByte | Write a byte to the specified offset in a card's
  50. //                                       attribute memory space.
  51. //
  52. // @comm    This function should be called within a try/except statement in case the
  53. // card is removed and the memory access results in a fault.  Card services calls
  54. // PDCardWriteAttrByte within a try/except clause in its <f CardWriteAttrByte> function.
  55. //
  56. // @xref <f PDCardReadAttrByte> <f PDCardReadCmnByte> <f PDCardWriteCmnByte>
  57. //       <f PDCardReadIOByte> <f PDCardWriteIOByte>
  58. //
  59. VOID
  60. PDCardWriteAttrByte(
  61.     PVOID pCardMem,     // @parm Pointer to PC card attribute memory obtained from <f CardMapMemory>
  62.     UINT32 uOffset,     // @parm Offset into card's attribute memory
  63.     UINT8 uByte         // @parm Byte to write
  64.     )
  65. {
  66.     PUCHAR pAttr = (PUCHAR)pCardMem;
  67.     pAttr += uOffset * 2;
  68.     *pAttr = uByte;
  69. }
  70. //
  71. // PDCardReadCmnByte
  72. //
  73. // @func    UINT8 | PDCardReadCmnByte | Read the byte at the specified offset in a card's
  74. //                                       common memory space.
  75. // @rdesc   Returns the byte read.
  76. //
  77. // @comm    This function should be called within a try/except statement in case the
  78. // card is removed and the memory access results in a fault.  Card services calls
  79. // PDCardReadCmnByte within a try/except clause in its <f CardReadCmnByte> function.
  80. //
  81. // @xref <f PDCardReadAttrByte> <f PDCardWriteAttrByte> <f PDCardWriteCmnByte>
  82. //       <f PDCardReadIOByte> <f PDCardWriteIOByte>
  83. //
  84. UINT8
  85. PDCardReadCmnByte(
  86.     PVOID pCardMem,     // @parm Pointer to PC card common memory obtained from <f CardMapMemory>
  87.     UINT32 uOffset
  88.     )
  89. {
  90.     UINT8 uByte;
  91.     volatile PUCHAR pCmn = (PUCHAR)pCardMem;
  92.     pCmn += uOffset;
  93.     uByte = *pCmn;
  94.     return uByte;
  95. }
  96. //
  97. // PDCardWriteCmnByte
  98. //
  99. // @func    VOID | PDCardWriteCmnByte | Write a byte to the specified offset in a card's
  100. //                                       common memory space.
  101. //
  102. // @comm    This function should be called within a try/except statement in case the
  103. // card is removed and the memory access results in a fault.  Card services calls
  104. // PDCardWriteCmnByte within a try/except clause in its <f CardWriteCmnByte> function.
  105. //
  106. // @xref <f PDCardReadAttrByte> <f PDCardWriteAttrByte> <f PDCardReadCmnByte>
  107. //       <f PDCardReadIOByte> <f PDCardWriteIOByte>
  108. //
  109. VOID
  110. PDCardWriteCmnByte(
  111.     PVOID pCardMem,     // @parm Pointer to PC card common memory obtained from <f CardMapMemory>
  112.     UINT32 uOffset,     // @parm Offset into card's common memory
  113.     UINT8 uByte         // @parm Byte to write
  114.     )
  115. {
  116.     volatile PUCHAR pCmn = (PUCHAR)pCardMem;
  117.     pCmn += uOffset;
  118.     *pCmn = uByte;
  119. RETAILMSG(0, (TEXT("W:%x=%x[%x]rn"), pCmn, *pCmn, uByte));
  120. }