18b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol/* 28b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Copyright (c) 2014 Intel Corporation 38b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// 48b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Licensed under the Apache License, Version 2.0 (the "License"); 58b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// you may not use this file except in compliance with the License. 68b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// You may obtain a copy of the License at 78b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// 88b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// http://www.apache.org/licenses/LICENSE-2.0 98b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// 108b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Unless required by applicable law or agreed to in writing, software 118b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// distributed under the License is distributed on an "AS IS" BASIS, 128b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// See the License for the specific language governing permissions and 148b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// limitations under the License. 158b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol*/ 168b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#ifndef WSBM_WRAPPER_H 178b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#define WSBM_WRAPPER_H 188b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 198b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#if defined(__cplusplus) 208b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern "C" { 218b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#endif 228b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 238b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern int psbWsbmInitialize(int drmFD); 248b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern void psbWsbmTakedown(); 258b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern int psbWsbmAllocateFromUB(uint32_t size, uint32_t align, void ** buf, void *user_pt); 268b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern int psbWsbmAllocateTTMBuffer(uint32_t size, uint32_t align,void ** buf); 278b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern int psbWsbmDestroyTTMBuffer(void * buf); 288b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern void * psbWsbmGetCPUAddress(void * buf); 298b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern uint32_t psbWsbmGetGttOffset(void * buf); 308b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern int psbWsbmWrapTTMBuffer(uint64_t handle, void **buf); 318b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern int psbWsbmWrapTTMBuffer2(uint64_t handle, void **buf); 328b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern int psbWsbmCreateFromUB(void *buf, uint32_t size, void *vaddr); 338b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern int psbWsbmUnReference(void *buf); 348b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolextern int psbWsbmWaitIdle(void *buf); 358b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujoluint32_t psbWsbmGetKBufHandle(void *buf); 368b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 378b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#if defined(__cplusplus) 388b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol} 398b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#endif 408b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol 418b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#endif /*WSBM_WRAPPER_H*/ 42