Steven Stallion wrote:
> This may or may not be OT, but I've always wondered what the official
> view of re-using the various DDI return statuses (i.e. DDI_SUCCESS and
> friends) within driver internal functions was.
>
> It seems that there are two main approaches used at the moment; this,
> and the use of boolean_t.
>
> Perhaps it may be useful to have an appendix dedicated to style?
>   

Style is, just that.  I've used everything from DDI_SUCCESS and company, 
to errnos, to boolean_t's.  Whatever seems most appropriate for the 
situation is what I do.  I wouldn't try to impose a style about this on 
developers.

    -- Garrett
> Garrett D'Amore wrote:
>   
>> Vicki Abe wrote:
>>     
>>> Hiya, Garrett!
>>>
>>> Great idea - thanks for proactively putting a stake in the ground
>>> to document the process.
>>>   
>>>       
>> No prob'.  Recall this is a Best Practices document that is intended for 
>> projects coming to ARC, not a replacement for information that belongs 
>> in WDD or in a test plan.  That may help frame some of my comments below.
>>
>>     
>>> One item that could be very helpful is to define clearly what is
>>> and is-not supported by the driver.  For example, we may have a
>>> very basic driver for a sophisticated device -- the device may have
>>> several enhanced features that are not supported by the "plain vanilla"
>>> driver.
>>>   
>>>       
>> This should be part of the ARC case for the driver or the man page of 
>> the driver, I'd think.  Unfortunately, there is no master of features 
>> where such a description makes sense.  Supporting Jumbo Frames is 
>> important for ethernet drivers, but completely pointless for storage 
>> drivers, or even other kinds of NIC driver, for example.
>>
>>     
>>> If we could distinguish in the man page between features that may exist
>>> in the chip, but may not be supported in the driver (a design decision),
>>> it would help to set user expectations correctly -- and avoid needless
>>> confusion (and customer calls).
>>>   
>>>       
>> Yes, but this isn't architectural.  This sounds like a potential docs 
>> req't, and should be coordinated with the docs folks, IMO.
>>
>>     
>>> Also, if the driver carried versioning information (version of the DDI,
>>> version of the USB spec, version of the driver itself, version of the
>>> gld framework), this would help with maintenance and ongoing support
>>> for our drivers.
>>>   
>>>       
>> There is no versioning of the DDI, although some specific interfaces are 
>> versioned.  This sounds more like a release engineering problem, 
>> though.  I'll note that bundled drivers carry the ON build they were 
>> built as part of in the ELF comments (accessible via "what").  Other 
>> kinds of versioning information would be hard to express universally, I 
>> think.  At least with our current DDI.  If you want to enhance the DDI 
>> for that, we'd need a specific proposal.  In any case, its out of scope 
>> for this Best Practices proposal (at least unless the DDI were enhanced 
>> to express that information.)
>>
>>     
>>> We also noticed in a recent device driver class that we sponsored for
>>> IHVs, that driver developers coming from a Linux environment had some
>>> key differences in approach -- for example, their use of the watchdog
>>> interrupt is a common technique in Linux, but was actually a violation
>>> of the spirit of the Solaris DDI.
>>>   
>>>       
>> Hmmm... I'm not sure how to express this difference in a best practices 
>> document.
>>
>> Are you saying that these folks were hanging off a platform wide 
>> watchdog for some other non-platform-specific driver?  Weird.  And yes, 
>> not really in the spirit (or the letter, for that matter) of the DDI.  
>> (timeout(9f) can be used to create soft watchdogs, though.)  I'm not 
>> sure I want to get into the philosophy of different design approaches, 
>> but I think DDI compliance already covers the main concern here.
>>
>> (Conversely, if the device has its own internal watchdog timer that the 
>> driver wishes to use to ensure proper function, I see no problem with that.)
>>     
>>> Can we add these items to your list?
>>>   
>>>       
>> I think most of the items you've mentioned probably have some other 
>> context than what I'm intending the Best Practices document for.  But 
>> I'm happy to hear arguments to the contrary -- perhaps our Best 
>> Practices guru (Plocher) would care to comment?
>>
>>     -- Garrett
>> _______________________________________________
>> driver-discuss mailing list
>> driver-discuss at opensolaris.org
>> http://mail.opensolaris.org/mailman/listinfo/driver-discuss
>>     


Reply via email to