p!ranha?
Server IP : 103.169.32.36  /  Your IP : 216.73.217.13
Web Server : Apache
System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 5.6.40
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/source/scripts/

Upload File :
Curr3nt_D!r [ Writeable ] D0cum3nt_r0Ot [ Writeable ]

 
Command :
Current File : /usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/source/scripts/conmakehash.c
/*
 * conmakehash.c
 *
 * Create arrays for initializing the kernel folded tables (using a hash
 * table turned out to be to limiting...)  Unfortunately we can't simply
 * preinitialize the tables at compile time since kfree() cannot accept
 * memory not allocated by kmalloc(), and doing our own memory management
 * just for this seems like massive overkill.
 *
 * Copyright (C) 1995-1997 H. Peter Anvin
 *
 * This program is a part of the Linux kernel, and may be freely
 * copied under the terms of the GNU General Public License (GPL),
 * version 2, or at your option any later version.
 */

#include <stdio.h>
#include <stdlib.h>
#include <sysexits.h>
#include <string.h>
#include <ctype.h>

#define MAX_FONTLEN 256

typedef unsigned short unicode;

static void usage(char *argv0)
{
  fprintf(stderr, "Usage: \n"
         "        %s chartable [hashsize] [hashstep] [maxhashlevel]\n", argv0);
  exit(EX_USAGE);
}

static int getunicode(char **p0)
{
  char *p = *p0;

  while (*p == ' ' || *p == '\t')
    p++;
  if (*p != 'U' || p[1] != '+' ||
      !isxdigit(p[2]) || !isxdigit(p[3]) || !isxdigit(p[4]) ||
      !isxdigit(p[5]) || isxdigit(p[6]))
    return -1;
  *p0 = p+6;
  return strtol(p+2,0,16);
}

unicode unitable[MAX_FONTLEN][255];
				/* Massive overkill, but who cares? */
int unicount[MAX_FONTLEN];

static void addpair(int fp, int un)
{
  int i;

  if ( un <= 0xfffe )
    {
      /* Check it isn't a duplicate */

      for ( i = 0 ; i < unicount[fp] ; i++ )
	if ( unitable[fp][i] == un )
	  return;

      /* Add to list */

      if ( unicount[fp] > 254 )
	{
	  fprintf(stderr, "ERROR: Only 255 unicodes/glyph permitted!\n");
	  exit(EX_DATAERR);
	}

      unitable[fp][unicount[fp]] = un;
      unicount[fp]++;
    }

  /* otherwise: ignore */
}

int main(int argc, char *argv[])
{
  FILE *ctbl;
  char *tblname;
  char buffer[65536];
  int fontlen;
  int i, nuni, nent;
  int fp0, fp1, un0, un1;
  char *p, *p1;

  if ( argc < 2 || argc > 5 )
    usage(argv[0]);

  if ( !strcmp(argv[1],"-") )
    {
      ctbl = stdin;
      tblname = "stdin";
    }
  else
    {
      ctbl = fopen(tblname = argv[1], "r");
      if ( !ctbl )
	{
	  perror(tblname);
	  exit(EX_NOINPUT);
	}
    }

  /* For now we assume the default font is always 256 characters. */    
  fontlen = 256;

  /* Initialize table */

  for ( i = 0 ; i < fontlen ; i++ )
    unicount[i] = 0;

  /* Now we come to the tricky part.  Parse the input table. */

  while ( fgets(buffer, sizeof(buffer), ctbl) != NULL )
    {
      if ( (p = strchr(buffer, '\n')) != NULL )
	*p = '\0';
      else
	fprintf(stderr, "%s: Warning: line too long\n", tblname);

      p = buffer;

/*
 * Syntax accepted:
 *	<fontpos>	<unicode> <unicode> ...
 *	<range>		idem
 *	<range>		<unicode range>
 *
 * where <range> ::= <fontpos>-<fontpos>
 * and <unicode> ::= U+<h><h><h><h>
 * and <h> ::= <hexadecimal digit>
 */

      while (*p == ' ' || *p == '\t')
	p++;
      if (!*p || *p == '#')
	continue;	/* skip comment or blank line */

      fp0 = strtol(p, &p1, 0);
      if (p1 == p)
	{
	  fprintf(stderr, "Bad input line: %s\n", buffer);
	  exit(EX_DATAERR);
        }
      p = p1;

      while (*p == ' ' || *p == '\t')
	p++;
      if (*p == '-')
	{
	  p++;
	  fp1 = strtol(p, &p1, 0);
	  if (p1 == p)
	    {
	      fprintf(stderr, "Bad input line: %s\n", buffer);
	      exit(EX_DATAERR);
	    }
	  p = p1;
        }
      else
	fp1 = 0;

      if ( fp0 < 0 || fp0 >= fontlen )
	{
	    fprintf(stderr,
		    "%s: Glyph number (0x%x) larger than font length\n",
		    tblname, fp0);
	    exit(EX_DATAERR);
	}
      if ( fp1 && (fp1 < fp0 || fp1 >= fontlen) )
	{
	    fprintf(stderr,
		    "%s: Bad end of range (0x%x)\n",
		    tblname, fp1);
	    exit(EX_DATAERR);
	}

      if (fp1)
	{
	  /* we have a range; expect the word "idem" or a Unicode range of the
	     same length */
	  while (*p == ' ' || *p == '\t')
	    p++;
	  if (!strncmp(p, "idem", 4))
	    {
	      for (i=fp0; i<=fp1; i++)
		addpair(i,i);
	      p += 4;
	    }
	  else
	    {
	      un0 = getunicode(&p);
	      while (*p == ' ' || *p == '\t')
		p++;
	      if (*p != '-')
		{
		  fprintf(stderr,
"%s: Corresponding to a range of font positions, there should be a Unicode range\n",
			  tblname);
		  exit(EX_DATAERR);
	        }
	      p++;
	      un1 = getunicode(&p);
	      if (un0 < 0 || un1 < 0)
		{
		  fprintf(stderr,
"%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n",
			  tblname, fp0, fp1);
		  exit(EX_DATAERR);
	        }
	      if (un1 - un0 != fp1 - fp0)
		{
		  fprintf(stderr,
"%s: Unicode range U+%x-U+%x not of the same length as font position range 0x%x-0x%x\n",
			  tblname, un0, un1, fp0, fp1);
		  exit(EX_DATAERR);
	        }
	      for(i=fp0; i<=fp1; i++)
		addpair(i,un0-fp0+i);
	    }
        }
      else
	{
	    /* no range; expect a list of unicode values for a single font position */

	    while ( (un0 = getunicode(&p)) >= 0 )
	      addpair(fp0, un0);
	}
      while (*p == ' ' || *p == '\t')
	p++;
      if (*p && *p != '#')
	fprintf(stderr, "%s: trailing junk (%s) ignored\n", tblname, p);
    }

  /* Okay, we hit EOF, now output hash table */
  
  fclose(ctbl);
  

  /* Compute total size of Unicode list */
  nuni = 0;
  for ( i = 0 ; i < fontlen ; i++ )
    nuni += unicount[i];
  
  printf("\
/*\n\
 * Do not edit this file; it was automatically generated by\n\
 *\n\
 * conmakehash %s > [this file]\n\
 *\n\
 */\n\
\n\
#include <linux/types.h>\n\
\n\
u8 dfont_unicount[%d] = \n\
{\n\t", argv[1], fontlen);

  for ( i = 0 ; i < fontlen ; i++ )
    {
      printf("%3d", unicount[i]);
      if ( i == fontlen-1 )
        printf("\n};\n");
      else if ( i % 8 == 7 )
        printf(",\n\t");
      else
        printf(", ");
    }
  
  printf("\nu16 dfont_unitable[%d] = \n{\n\t", nuni);
  
  fp0 = 0;
  nent = 0;
  for ( i = 0 ; i < nuni ; i++ )
    {
      while ( nent >= unicount[fp0] )
	{
	  fp0++;
	  nent = 0;
	}
      printf("0x%04x", unitable[fp0][nent++]);
      if ( i == nuni-1 )
         printf("\n};\n");
       else if ( i % 8 == 7 )
         printf(",\n\t");
       else
         printf(", ");
    }

  exit(EX_OK);
}
N4m3
5!z3
L45t M0d!f!3d
0wn3r / Gr0up
P3Rm!55!0n5
0pt!0n5
..
--
September 29 2025 07:00:58
0 / 0
0755
basic
--
September 29 2025 07:01:29
0 / 0
0755
coccinelle
--
September 29 2025 07:00:57
0 / 0
0755
dtc
--
September 29 2025 07:01:30
0 / 0
0755
genksyms
--
September 29 2025 07:01:30
0 / 0
0755
kconfig
--
September 29 2025 07:01:30
0 / 0
0755
ksymoops
--
September 29 2025 07:01:29
0 / 0
0755
mod
--
September 29 2025 07:01:30
0 / 0
0755
package
--
September 29 2025 07:01:30
0 / 0
0755
rt-tester
--
September 29 2025 07:01:29
0 / 0
0755
selinux
--
September 29 2025 07:01:29
0 / 0
0755
tracing
--
September 29 2025 07:01:30
0 / 0
0755
Kbuild.include
10.251 KB
November 06 2023 09:15:52
0 / 0
0644
Lindent
0.449 KB
November 06 2023 09:15:52
0 / 0
0755
Makefile
1.394 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.asm-generic
0.668 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.build
15.908 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.clean
3.232 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.fwinst
2.026 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.headersinst
4.716 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.help
0.066 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.host
6.458 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.lib
13.569 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.modbuiltin
1.783 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.modinst
1.158 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.modpost
5.148 KB
November 06 2023 09:15:52
0 / 0
0644
Makefile.modsign
0.979 KB
November 06 2023 09:15:52
0 / 0
0644
asn1_compiler
22.336 KB
June 04 2024 14:55:43
0 / 0
0755
asn1_compiler.c
33.967 KB
November 06 2023 09:15:52
0 / 0
0644
bloat-o-meter
1.755 KB
November 06 2023 09:15:52
0 / 0
0755
bootgraph.pl
5.62 KB
November 06 2023 09:15:52
0 / 0
0644
checkincludes.pl
1.773 KB
November 06 2023 09:15:52
0 / 0
0755
checkkconfigsymbols.sh
1.82 KB
November 06 2023 09:15:52
0 / 0
0755
checkpatch.pl
101.344 KB
November 06 2023 09:15:52
0 / 0
0755
checkstack.pl
5.335 KB
November 06 2023 09:15:52
0 / 0
0755
checksyscalls.sh
5.637 KB
November 06 2023 09:15:52
0 / 0
0755
checkversion.pl
1.859 KB
November 06 2023 09:15:52
0 / 0
0755
cleanfile
3.41 KB
November 06 2023 09:15:52
0 / 0
0755
cleanpatch
5.012 KB
November 06 2023 09:15:52
0 / 0
0755
coccicheck
3.775 KB
November 06 2023 09:15:52
0 / 0
0755
config
3.646 KB
November 06 2023 09:15:52
0 / 0
0755
conmakehash
10.164 KB
June 04 2024 14:55:43
0 / 0
0755
conmakehash.c
5.998 KB
November 06 2023 09:15:52
0 / 0
0644
decodecode
2.149 KB
November 06 2023 09:15:52
0 / 0
0755
depmod.sh
1.668 KB
November 06 2023 09:15:52
0 / 0
0755
diffconfig
3.541 KB
November 06 2023 09:15:52
0 / 0
0755
docproc.c
13.694 KB
November 06 2023 09:15:52
0 / 0
0644
export_report.pl
4.534 KB
November 06 2023 09:15:52
0 / 0
0644
extract-ikconfig
1.645 KB
November 06 2023 09:15:52
0 / 0
0755
extract-vmlinux
1.599 KB
November 06 2023 09:15:52
0 / 0
0755
gcc-goto.sh
0.454 KB
November 06 2023 09:15:52
0 / 0
0644
gcc-version.sh
0.803 KB
November 06 2023 09:15:52
0 / 0
0644
gcc-x86_32-has-stack-protector.sh
0.18 KB
November 06 2023 09:15:52
0 / 0
0644
gcc-x86_64-has-stack-protector.sh
0.195 KB
November 06 2023 09:15:52
0 / 0
0644
gen_initramfs_list.sh
7.382 KB
November 06 2023 09:15:52
0 / 0
0644
get_maintainer.pl
54.114 KB
November 06 2023 09:15:52
0 / 0
0755
gfp-translate
1.711 KB
November 06 2023 09:15:52
0 / 0
0755
headerdep.pl
3.465 KB
November 06 2023 09:15:52
0 / 0
0755
headers.sh
0.518 KB
November 06 2023 09:15:52
0 / 0
0755
headers_check.pl
3.6 KB
November 06 2023 09:15:52
0 / 0
0644
headers_install.sh
1.279 KB
November 06 2023 09:15:52
0 / 0
0644
kallsyms
14.43 KB
June 04 2024 14:55:43
0 / 0
0755
kallsyms.c
16.522 KB
November 06 2023 09:15:52
0 / 0
0644
kernel-doc
71.414 KB
November 06 2023 09:15:52
0 / 0
0755
link-vmlinux.sh
5.648 KB
November 06 2023 09:15:52
0 / 0
0644
makelst
0.755 KB
November 06 2023 09:15:52
0 / 0
0755
markup_oops.pl
8.08 KB
November 06 2023 09:15:52
0 / 0
0644
mkcompile_h
2.461 KB
November 06 2023 09:15:52
0 / 0
0755
mkmakefile
1.167 KB
November 06 2023 09:15:52
0 / 0
0644
mksysmap
1.319 KB
November 06 2023 09:15:52
0 / 0
0644
mkuboot.sh
0.37 KB
November 06 2023 09:15:52
0 / 0
0755
mkversion
0.072 KB
November 06 2023 09:15:52
0 / 0
0644
module-common.lds
0.739 KB
November 06 2023 09:15:52
0 / 0
0644
modules.order
0 KB
June 04 2024 14:44:29
0 / 0
0644
namespace.pl
13.001 KB
November 06 2023 09:15:52
0 / 0
0755
patch-kernel
9.914 KB
November 06 2023 09:15:52
0 / 0
0755
pnmtologo
14.188 KB
June 04 2024 14:55:43
0 / 0
0755
pnmtologo.c
11.912 KB
November 06 2023 09:15:52
0 / 0
0644
profile2linkerlist.pl
0.366 KB
November 06 2023 09:15:52
0 / 0
0644
recordmcount
18.281 KB
June 04 2024 14:55:43
0 / 0
0755
recordmcount.c
12.398 KB
November 06 2023 09:15:52
0 / 0
0644
recordmcount.h
16.339 KB
November 06 2023 09:15:52
0 / 0
0644
recordmcount.pl
17.568 KB
November 06 2023 09:15:52
0 / 0
0755
setlocalversion
3.938 KB
November 06 2023 09:15:52
0 / 0
0755
show_delta
2.981 KB
November 06 2023 09:15:52
0 / 0
0755
sign-file
12.164 KB
November 06 2023 09:15:52
0 / 0
0755
sortextable
14.188 KB
June 04 2024 14:55:43
0 / 0
0755
sortextable.c
7.412 KB
November 06 2023 09:15:52
0 / 0
0644
sortextable.h
5.479 KB
November 06 2023 09:15:52
0 / 0
0644
tags.sh
9.87 KB
November 06 2023 09:15:52
0 / 0
0755
unifdef
26.336 KB
June 04 2024 14:55:43
0 / 0
0755
unifdef.c
34.804 KB
November 06 2023 09:15:52
0 / 0
0644
ver_linux
3.091 KB
November 06 2023 09:15:52
0 / 0
0755
xz_wrap.sh
0.549 KB
November 06 2023 09:15:52
0 / 0
0644