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