kcpuinfo.h

00001 /*
00002  * This file is part of the KDE libraries
00003  * Copyright (C) 2003 Fredrik Höglund <fredrik@kde.org>
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * 1. Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  * 2. Redistributions in binary form must reproduce the above copyright
00012  *    notice, this list of conditions and the following disclaimer in the
00013  *    documentation and/or other materials provided with the distribution.
00014  *
00015  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
00016  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00017  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
00018  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
00019  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
00020  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00021  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
00022  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00023  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00024  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00025  */
00026 
00027 #ifndef __KCPUINFO_H
00028 #define __KCPUINFO_H
00029 
00030 #include <kdelibs_export.h>
00031 
00039 class KDEFX_EXPORT KCPUInfo
00040 {
00041     public:
00046         enum Extensions {
00047             IntelMMX        = 1 << 0,  
00048             IntelSSE        = 1 << 1,  
00049             IntelSSE2       = 1 << 2,  
00050             AMD3DNOW        = 1 << 3,  
00051             AltiVec         = 1 << 4   
00052         };
00053 
00062         static bool haveExtension( unsigned int extension )
00063         { return (s_features & extension) != 0; }
00064 
00065     private:
00066         static unsigned int s_features;
00067 };
00068 
00069 #endif
00070 
KDE Home | KDE Accessibility Home | Description of Access Keys