summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2005-06-14 13:14:38 (UTC)
committer mickeyl <mickeyl>2005-06-14 13:14:38 (UTC)
commitc1194d42d8456417452b125bd6c2c5048d7bbe02 (patch) (unidiff)
treedbc31e47615d840745eafd0635f724548ece6281
parent9e210f138184f9cc93e28dd894243fc7bfea1b0f (diff)
downloadopie-c1194d42d8456417452b125bd6c2c5048d7bbe02.zip
opie-c1194d42d8456417452b125bd6c2c5048d7bbe02.tar.gz
opie-c1194d42d8456417452b125bd6c2c5048d7bbe02.tar.bz2
enable OPcmciaSocket::manufacturer()
Did I mention Qt2 sucks? We don't even have a QPair :/
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/linux/opcmciasystem.cpp24
-rw-r--r--libopie2/opiecore/linux/opcmciasystem.h6
2 files changed, 20 insertions, 10 deletions
diff --git a/libopie2/opiecore/linux/opcmciasystem.cpp b/libopie2/opiecore/linux/opcmciasystem.cpp
index 929e289..2eece6b 100644
--- a/libopie2/opiecore/linux/opcmciasystem.cpp
+++ b/libopie2/opiecore/linux/opcmciasystem.cpp
@@ -46,12 +46,14 @@ using namespace Opie::Core;
46#include <sys/types.h> 46#include <sys/types.h>
47#include <sys/stat.h> 47#include <sys/stat.h>
48#include <unistd.h> 48#include <unistd.h>
49 49
50#define PROC_DEVICES "/proc/devices" 50#define PROC_DEVICES "/proc/devices"
51 51
52#define OPCMCIA_DEBUG 1
53
52/*====================================================================================== 54/*======================================================================================
53 * OPcmciaSystem 55 * OPcmciaSystem
54 *======================================================================================*/ 56 *======================================================================================*/
55 57
56OPcmciaSystem* OPcmciaSystem::_instance = 0; 58OPcmciaSystem* OPcmciaSystem::_instance = 0;
57 59
@@ -186,14 +188,20 @@ OPcmciaSocket::~OPcmciaSocket()
186/* internal */ void OPcmciaSocket::init() 188/* internal */ void OPcmciaSocket::init()
187{ 189{
188 // open control socket and gather file descriptor 190 // open control socket and gather file descriptor
189 if ( _major ) 191 if ( _major )
190 { 192 {
191 dev_t dev = makedev( _major, _socket ); 193 dev_t dev = makedev( _major, _socket );
194
195#ifdef OPCMCIA_DEBUG
196 QString filename = "/tmp/opcmciasystem-debug";
197 if ( QFile::exists( filename ) )
198#else
192 QString filename = QString().sprintf( "/tmp/opcmciasystem-%d", ::getpid() ); 199 QString filename = QString().sprintf( "/tmp/opcmciasystem-%d", ::getpid() );
193 if ( ::mknod( (const char*) filename, ( S_IFCHR|S_IREAD|S_IWRITE ), dev ) == 0 ) 200 if ( ::mknod( (const char*) filename, ( S_IFCHR|S_IREAD|S_IWRITE ), dev ) == 0 )
201#endif
194 { 202 {
195 _fd = ::open( (const char*) filename, O_RDONLY); 203 _fd = ::open( (const char*) filename, O_RDONLY);
196 if ( !_fd ) 204 if ( !_fd )
197 { 205 {
198 qWarning( "OPcmciaSocket::init() - can't open control socket (%s)", strerror( errno ) ); 206 qWarning( "OPcmciaSocket::init() - can't open control socket (%s)", strerror( errno ) );
199 } 207 }
@@ -201,13 +209,13 @@ OPcmciaSocket::~OPcmciaSocket()
201 { 209 {
202 ::unlink( (const char*) filename ); 210 ::unlink( (const char*) filename );
203 } 211 }
204 } 212 }
205 else 213 else
206 { 214 {
207 qWarning( "OPcmciaSocket::init() - can't create device node (%s)", strerror( errno ) ); 215 qWarning( "OPcmciaSocket::init() - can't create device node '%s' (%s)", (const char*) filename, strerror( errno ) );
208 } 216 }
209 } 217 }
210} 218}
211 219
212/* internal */ void OPcmciaSocket::cleanup() 220/* internal */ void OPcmciaSocket::cleanup()
213{ 221{
@@ -288,13 +296,13 @@ bool OPcmciaSocket::isEmpty() const
288 return ! status() && ( Occupied || OccupiedCardBus ); 296 return ! status() && ( Occupied || OccupiedCardBus );
289} 297}
290 298
291 299
292bool OPcmciaSocket::isSuspended() const 300bool OPcmciaSocket::isSuspended() const
293{ 301{
294 return status() && Suspended; 302 return status() && Suspended;
295} 303}
296 304
297 305
298bool OPcmciaSocket::eject() 306bool OPcmciaSocket::eject()
299{ 307{
300 return ::ioctl( _fd, DS_EJECT_CARD ); 308 return ::ioctl( _fd, DS_EJECT_CARD );
@@ -342,18 +350,22 @@ QStringList OPcmciaSocket::productIdentity() const
342 list += "<unknown>"; 350 list += "<unknown>";
343 } 351 }
344 return list; 352 return list;
345} 353}
346 354
347 355
348#if 0 356QString OPcmciaSocket::manufacturerIdentity() const
349const QPair& OPcmciaSocket::manufacturerIdentity() const
350{ 357{
351 return _manufId; 358 cistpl_manfid_t *manfid = &_ioctlarg.tuple_parse.parse.manfid;
359 if ( getTuple( CISTPL_MANFID ) )
360 {
361 return QString().sprintf( "0x%04x, 0x%04x", manfid->manf, manfid->card );
362 }
363 else
364 return "<unknown>";
352} 365}
353#endif
354 366
355 367
356QString OPcmciaSocket::function() const 368QString OPcmciaSocket::function() const
357{ 369{
358 cistpl_funcid_t *funcid = &_ioctlarg.tuple_parse.parse.funcid; 370 cistpl_funcid_t *funcid = &_ioctlarg.tuple_parse.parse.funcid;
359 if ( getTuple( CISTPL_FUNCID ) ) 371 if ( getTuple( CISTPL_FUNCID ) )
diff --git a/libopie2/opiecore/linux/opcmciasystem.h b/libopie2/opiecore/linux/opcmciasystem.h
index ac6c1de..0fd43cf 100644
--- a/libopie2/opiecore/linux/opcmciasystem.h
+++ b/libopie2/opiecore/linux/opcmciasystem.h
@@ -189,17 +189,15 @@ class OPcmciaSocket : public QObject
189 bool reset(); 189 bool reset();
190 /** 190 /**
191 * @returns a list of product IDs 191 * @returns a list of product IDs
192 */ 192 */
193 QStringList productIdentity() const; 193 QStringList productIdentity() const;
194 /** 194 /**
195 * @returns the manufacturer ID pair 195 * @returns the manufacturer ID string
196 */ 196 */
197#if 0 197 QString manufacturerIdentity() const;
198 const QPair& manufacturerIdentity() const;
199#endif
200 /** 198 /**
201 * @returns the function string 199 * @returns the function string
202 */ 200 */
203 QString function() const; 201 QString function() const;
204 202
205 private: 203 private: