boot time variable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I would like to create a boot time variable i.e a variable that is set once at boot time. Variable
does not need to be globally accessible. (actually I am using two variables).

Could any one point me to examples of this already intree please?

I have tried the following but it has a race condition on the zero check and assignment of randval/oddval.

/* Maps a pointer to a unique identifier. */
static char *ptr_to_id(char *buf, char *end, void *ptr, struct printf_spec spec)
{
	long hashval;
	static long randval = 0;
	static long oddval = 0;

	if (oddval == 0 && randval == 0) {
		randval = get_random_long();
		oddval = get_random_odd_long();
	}

	hashval = ptr_obfuscate((unsigned long)ptr, randval, oddval);
	spec.base = 16;

	return number(buf, end, hashval, spec);
}

And the compiler doesn't like

        static long randval = get_random_long();
	static long oddval = get_random_odd_long();


I thought of wrapping oddval/randval in a struct and protecting it with a lock but I don't know
how/where to initialize the lock in a race free manner?

Any tips or pointers please?

thanks,
Tobin.

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux