| /******************************************************************************/ |
| /* */ |
| /* Copyright (c) 2009 FUJITSU LIMITED */ |
| /* */ |
| /* This program is free software; you can redistribute it and/or modify */ |
| /* it under the terms of the GNU General Public License as published by */ |
| /* the Free Software Foundation; either version 2 of the License, or */ |
| /* (at your option) any later version. */ |
| /* */ |
| /* This program is distributed in the hope that it will be useful, */ |
| /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ |
| /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */ |
| /* the GNU General Public License for more details. */ |
| /* */ |
| /* You should have received a copy of the GNU General Public License */ |
| /* along with this program; if not, write to the Free Software */ |
| /* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ |
| /* */ |
| /* Author: Li Zefan <lizf@cn.fujitsu.com> */ |
| /* */ |
| /******************************************************************************/ |
| |
| #include <sys/mman.h> |
| #include <err.h> |
| #include <signal.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| #include <unistd.h> |
| #include <unistd.h> |
| |
| #define MEM_SIZE (1024 * 1024 * 100) |
| |
| void sigusr_handler(int __attribute__((unused)) signo) |
| { |
| char *p; |
| |
| p = mmap(NULL, MEM_SIZE, PROT_READ|PROT_WRITE, |
| MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); |
| if (p == MAP_FAILED) { |
| err(1, "failed to allocate memory!"); |
| } |
| |
| memset(p, 'z', MEM_SIZE); |
| } |
| |
| int main(void) |
| { |
| struct sigaction sigusr_action; |
| |
| memset(&sigusr_action, 0, sizeof(sigusr_action)); |
| sigusr_action.sa_handler = &sigusr_handler; |
| sigaction(SIGUSR1, &sigusr_action, NULL); |
| |
| while (1) |
| sleep(1); |
| |
| return 0; |
| } |