Changeset 55474 in vbox for trunk/include
- Timestamp:
- Apr 28, 2015 8:53:39 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/HGSMI/HGSMI.h
r55421 r55474 72 72 */ 73 73 74 #pragma pack(1)75 74 typedef struct HGSMIHEAP 76 75 { … … 78 77 HGSMIMADATA ma; /* Memory allocator */ 79 78 } HGSMIHEAP; 80 #pragma pack() 81 82 #pragma pack(1) 79 83 80 /* The size of the array of channels. Array indexes are uint8_t. Note: the value must not be changed. */ 84 81 #define HGSMI_NUMBER_OF_CHANNELS 0x100 … … 110 107 */ 111 108 } HGSMICHANNELINFO; 112 #pragma pack()113 109 114 110 … … 125 121 } 126 122 127 DECLINLINE(HGSMIBUFFERTAIL *) HGSMIBufferTailFromPtr(void *pvBuffer, uint32_t u32DataSize) 123 DECLINLINE(HGSMIBUFFERTAIL *) HGSMIBufferTailFromPtr(void *pvBuffer, 124 uint32_t u32DataSize) 128 125 { 129 126 return (HGSMIBUFFERTAIL *)(HGSMIBufferDataFromPtr(pvBuffer) + u32DataSize); 130 127 } 131 128 132 DECLINLINE(HGSMISIZE) HGSMIBufferMinimumSize (void) 133 { 134 return sizeof (HGSMIBUFFERHEADER) + sizeof (HGSMIBUFFERTAIL); 135 } 136 137 DECLINLINE(uint8_t *) HGSMIBufferData (const HGSMIBUFFERHEADER *pHeader) 138 { 139 return (uint8_t *)pHeader + sizeof (HGSMIBUFFERHEADER); 140 } 141 142 DECLINLINE(HGSMIBUFFERTAIL *) HGSMIBufferTail (const HGSMIBUFFERHEADER *pHeader) 143 { 144 return (HGSMIBUFFERTAIL *)(HGSMIBufferData (pHeader) + pHeader->u32DataSize); 145 } 146 147 DECLINLINE(HGSMIBUFFERHEADER *) HGSMIBufferHeaderFromData (const void *pvData) 148 { 149 return (HGSMIBUFFERHEADER *)((uint8_t *)pvData - sizeof (HGSMIBUFFERHEADER)); 150 } 151 152 DECLINLINE(HGSMISIZE) HGSMIBufferRequiredSize (uint32_t u32DataSize) 153 { 154 return HGSMIBufferMinimumSize () + u32DataSize; 129 DECLINLINE(HGSMISIZE) HGSMIBufferMinimumSize(void) 130 { 131 return sizeof(HGSMIBUFFERHEADER) + sizeof(HGSMIBUFFERTAIL); 132 } 133 134 DECLINLINE(HGSMIBUFFERHEADER *) HGSMIBufferHeaderFromData(const void *pvData) 135 { 136 return (HGSMIBUFFERHEADER *)((uint8_t *)pvData - sizeof(HGSMIBUFFERHEADER)); 137 } 138 139 DECLINLINE(HGSMISIZE) HGSMIBufferRequiredSize(uint32_t u32DataSize) 140 { 141 return HGSMIBufferMinimumSize() + u32DataSize; 155 142 } 156 143 … … 181 168 } 182 169 183 DECLINLINE(uint8_t *) HGSMIBufferDataAndChInfoFromOffset (const HGSMIAREA *pArea, HGSMIOFFSET offBuffer, uint16_t * pChInfo) 184 { 185 HGSMIBUFFERHEADER *pHeader = (HGSMIBUFFERHEADER *)HGSMIOffsetToPointer (pArea, offBuffer); 186 Assert(pHeader); 187 if(pHeader) 188 { 189 *pChInfo = pHeader->u16ChannelInfo; 190 return HGSMIBufferData(pHeader); 191 } 192 return NULL; 193 } 194 195 uint32_t HGSMIChecksum (HGSMIOFFSET offBuffer, 196 const HGSMIBUFFERHEADER *pHeader, 197 const HGSMIBUFFERTAIL *pTail); 198 199 int HGSMIAreaInitialize (HGSMIAREA *pArea, 200 void *pvBase, 201 HGSMISIZE cbArea, 202 HGSMIOFFSET offBase); 203 204 void HGSMIAreaClear (HGSMIAREA *pArea); 170 DECLINLINE(uint8_t *) HGSMIBufferDataAndChInfoFromOffset(const HGSMIAREA *pArea, 171 HGSMIOFFSET offBuffer, 172 uint16_t *pu16ChannelInfo) 173 { 174 HGSMIBUFFERHEADER *pHeader = (HGSMIBUFFERHEADER *)HGSMIOffsetToPointer(pArea, offBuffer); 175 *pu16ChannelInfo = pHeader->u16ChannelInfo; 176 return HGSMIBufferDataFromPtr(pHeader); 177 } 178 179 uint32_t HGSMIChecksum(HGSMIOFFSET offBuffer, 180 const HGSMIBUFFERHEADER *pHeader, 181 const HGSMIBUFFERTAIL *pTail); 182 183 int HGSMIAreaInitialize(HGSMIAREA *pArea, 184 void *pvBase, 185 HGSMISIZE cbArea, 186 HGSMIOFFSET offBase); 187 188 void HGSMIAreaClear(HGSMIAREA *pArea); 205 189 206 190 DECLINLINE(bool) HGSMIAreaContainsOffset(const HGSMIAREA *pArea, HGSMIOFFSET off) … … 214 198 } 215 199 216 HGSMIOFFSET HGSMIBufferInitializeSingle (const HGSMIAREA *pArea, 217 HGSMIBUFFERHEADER *pHeader, 218 HGSMISIZE cbBuffer, 219 uint8_t u8Channel, 220 uint16_t u16ChannelInfo); 200 HGSMIOFFSET HGSMIBufferInitializeSingle(const HGSMIAREA *pArea, 201 HGSMIBUFFERHEADER *pHeader, 202 HGSMISIZE cbBuffer, 203 uint8_t u8Channel, 204 uint16_t u16ChannelInfo); 205 206 int HGSMIHeapSetup(HGSMIHEAP *pHeap, 207 void *pvBase, 208 HGSMISIZE cbArea, 209 HGSMIOFFSET offBase, 210 const HGSMIENV *pEnv); 211 212 void HGSMIHeapDestroy(HGSMIHEAP *pHeap); 213 214 void *HGSMIHeapBufferAlloc(HGSMIHEAP *pHeap, 215 HGSMISIZE cbBuffer); 216 217 void HGSMIHeapBufferFree(HGSMIHEAP *pHeap, 218 void *pvBuf); 219 220 void *HGSMIHeapAlloc(HGSMIHEAP *pHeap, 221 HGSMISIZE cbData, 222 uint8_t u8Channel, 223 uint16_t u16ChannelInfo); 224 225 void HGSMIHeapFree(HGSMIHEAP *pHeap, 226 void *pvData); 221 227 222 228 DECLINLINE(const HGSMIAREA *) HGSMIHeapArea(HGSMIHEAP *pHeap) … … 225 231 } 226 232 227 int HGSMIHeapSetup (HGSMIHEAP *pHeap, 228 void *pvBase, 229 HGSMISIZE cbArea, 230 HGSMIOFFSET offBase, 231 const HGSMIENV *pEnv); 232 233 void HGSMIHeapDestroy (HGSMIHEAP *pHeap); 234 235 void* HGSMIHeapBufferAlloc (HGSMIHEAP *pHeap, 236 HGSMISIZE cbBuffer); 237 238 void HGSMIHeapBufferFree(HGSMIHEAP *pHeap, 239 void *pvBuf); 240 241 void *HGSMIHeapAlloc (HGSMIHEAP *pHeap, 242 HGSMISIZE cbData, 243 uint8_t u8Channel, 244 uint16_t u16ChannelInfo); 245 246 DECLINLINE(HGSMIOFFSET) HGSMIHeapBufferOffset(HGSMIHEAP *pHeap, void *pvData) 233 DECLINLINE(HGSMIOFFSET) HGSMIHeapOffset(HGSMIHEAP *pHeap) 234 { 235 return HGSMIHeapArea(pHeap)->offBase; 236 } 237 238 DECLINLINE(HGSMISIZE) HGSMIHeapSize(HGSMIHEAP *pHeap) 239 { 240 return HGSMIHeapArea(pHeap)->cbArea; 241 } 242 243 DECLINLINE(HGSMIOFFSET) HGSMIHeapBufferOffset(HGSMIHEAP *pHeap, 244 void *pvData) 247 245 { 248 246 return HGSMIBufferOffsetFromData(HGSMIHeapArea(pHeap), pvData); 249 }250 251 void HGSMIHeapFree (HGSMIHEAP *pHeap,252 void *pvData);253 254 DECLINLINE(HGSMIOFFSET) HGSMIHeapOffset(HGSMIHEAP *pHeap)255 {256 return HGSMIHeapArea(pHeap)->offBase;257 }258 259 DECLINLINE(HGSMISIZE) HGSMIHeapSize(HGSMIHEAP *pHeap)260 {261 return HGSMIHeapArea(pHeap)->cbArea;262 247 } 263 248 … … 271 256 void *pvChannelHandler); 272 257 273 int HGSMIBufferProcess( HGSMIAREA *pArea,258 int HGSMIBufferProcess(const HGSMIAREA *pArea, 274 259 HGSMICHANNELINFO *pChannelInfo, 275 260 HGSMIOFFSET offBuffer);
Note:
See TracChangeset
for help on using the changeset viewer.