Msync Invalid Arg

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

 



Whne I try to execute following code then  get an erro message that "Invalid Argumemt" in msync. 


#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/errno.h>
#include <sys/time.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <pthread.h>
#include <linux/types.h>

int main()
{
	int fd;
	char data[20];
	__u8 *start_addr,*end_addr;
	int PageSize;

	if ( (PageSize = sysconf(_SC_PAGE_SIZE)) < 0) {
	    perror("sysconf() Error=");
		    return -1;
	}
	printf("PageSize = %d\n",PageSize);

	if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1)
	{ 
		printf("Error opening /dev/mem\n");
		return -1;
	}

	start_addr = mmap(0, PageSize, PROT_READ | PROT_WRITE, MAP_SHARED, fd,
										0);
	if(start_addr == MAP_FAILED)
	{
		printf("enc_status map failed %s\n", strerror(errno));
		return -1;
	}

	end_addr = start_addr + (4096 - 1);
	strcpy(data, "Test Msg");
	printf("\n%s:Writing NVRAM.......\n", __FUNCTION__);
	if(write(fd, data, strlen(data)) <= 0)
	{
		printf("%s: Not able to write on NVRAM. %s.\n", __FUNCTION__,
				strerror(errno));
		return -1;
	}
	printf("\n%s:Synching NVRAM.......\n", __FUNCTION__);
	if(msync(start_addr, PageSize, MS_SYNC) <= 0)
	{
		printf("%s: Not able to sync to NVRAM. %s.\n", __FUNCTION__,
				strerror(errno));
		return -1;
	}
	printf("\n%s:reading NVRAM.......\n", __FUNCTION__);
	strcpy(data, "");
	if(read(fd, data, sizeof(data)) <= 0)
	{
		printf("%s: Not able to read on NVRAM. %s.\n", __FUNCTION__,
				strerror(errno));
		return -1;
	}
	printf("%s: data  %s.\n", __FUNCTION__, data);
	return 0;
}


--
This message was sent on behalf of darshan.ghumare@xxxxxxxxx at openSubscriber.com
http://www.opensubscriber.com/messages/linux-c-programming@xxxxxxxxxxxxxxx/topic.html
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux