This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I have a couple of questions.
-In VPBE drivers, DDC_VPBEOsdObject structure has fields of Bool PlaneActive and DDC_VPBEFrameBufferObject fb.
One of the usage of PlaneActive field is in DDC_VPBEQueueFrameBuffer function, where it checks if the given plane is not active hence it turns it active at first add queue. However, I couldn't find the initialization of PlaneActive field as FALSE. I see it is set FALSE only in DDC_VPBECloseHandle function, which is not (or should not be) related to my question, since I am dealing with queueing after the steps of initializing the osd object; so far no close handle is called.
-Also, similarly, I see FrameBufferObject's fields are initialized in DDC_VPBEResetFrameBufferObject function, which is called in DDC_VPBEClose function. But in DDC_VPBEAddQueue function, it uses the object's so far uninitialized fields, such as in "if (NULL == fbAQ->activeQueue[fbAQ->writeIndexActiveQue]". There should be no value initialized for Uint writeIndexActiveQueue, but it uses it.
Edit: In addition, FrameBufferObject's FVID_Frame *tempfbAddFree field is not initialized anywhere, but where it is used it checks if it is equal to NULL, and if yes does some operations on the queue (so it is not supposed to be NULL at this stage).
Can you see where I am wrong? (I am asking these because I am arranging the driver codes for my purpose and this case appears as a problem to me since I dont use the driver as a whole.)
-Another question is about the usage of semaphors and interrupts. I am a little weak in both these. I think semaphors are used to avoid confliction where there should be more than one device, am I right?
For interrupts, is there any document I could reference why the interrupts are used in vpbe drivers?
I will be very appreciated for any answers,
Erman