Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1245 → Rev 1246

/drivers/video/drm/radeon/cmdline.c
0,0 → 1,92
 
#include <stdint.h>
#include <drm/drmP.h>
#include <drm.h>
#include <drm_mm.h>
#include "radeon_drm.h"
#include "radeon.h"
#include "radeon_object.h"
 
static int my_atoi(char **cmd)
{
char* p = *cmd;
int val = 0;
 
for (;; *p++) {
switch (*p) {
case '0' ... '9':
val = 10*val+(*p-'0');
break;
default:
*cmd = p;
return val;
}
}
}
 
char* parse_mode(char *p, mode_t *mode)
{
char c;
 
while( (c = *p++) == ' ');
 
if( c )
{
p--;
 
mode->width = my_atoi(&p);
if(*p == 'x') p++;
 
mode->height = my_atoi(&p);
if(*p == 'x') p++;
 
mode->bpp = 32;
 
mode->freq = my_atoi(&p);
 
if( mode->freq == 0 )
mode->freq = 60;
}
 
return p;
};
 
char* parse_path(char *p, char *log)
{
char c;
 
while( (c = *p++) == ' ');
p--;
while( (c = *log++ = *p++) && (c != ' '));
*log = 0;
 
return p;
};
 
void parse_cmdline(char *cmdline, mode_t *mode, char *log, int *kms)
{
char *p = cmdline;
 
char c = *p++;
 
while( c )
{
if( c == '-')
{
switch(*p++)
{
case 'm':
p = parse_mode(p, mode);
break;
 
case 'l':
p = parse_path(p, log);
break;
 
case 'n':
*kms = 0;
};
};
c = *p++;
};
};