File: mremap.2

package info (click to toggle)
manpages-es 0.4a-2
  • links: PTS
  • area: main
  • in suites: hamm, slink
  • size: 3,592 kB
  • ctags: 3
  • sloc: sh: 59; makefile: 42
file content (112 lines) | stat: -rw-r--r-- 4,657 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
.\" Hey Emacs! Este fichero es -*- nroff -*- fuente.
.\"
.\" Copyright (c) 1996 Tom Bjorkholm <tomb@mydata.se>
.\"
.\" Esto es documentacin libre ; Tu puedes redistribuirla y/o
.\" modificarla bajos los trminos de las licencias pblicas generales de GNU
.\" publicados por la Fundacin de Libre Software ; ambos versiones 2 de
.\" la Licencia, o (dependiendo de Ud.)cualquier versin posterior.
.\"
.\" Las referencias de las licencias pblicas generales de GNU referentes al "cdigo objeto"
.\" y "ejecutables" estn siendo interpretadas como la salida de cualquier
.\" documento formateado o sistema tipografiado, incluyendo
.\" intermediacin y salidas impresas.
.\"
.\" Este manual es distribudo con la esperanza de su buen uso,
.\" pero SIN NINGUN TIPO DE GARANTIAS ; sin siquiera las garantas implicadas de
.\" COMERCIABILIDAD o AMPTITUD PARA UN PROPOSITO PATICULAR.
.\" Ver la Licencia Pblica General de GNU para ms detalles.
.\"
.\" Tu debers recibir una copia de la Licencia Pblica General
.\" de GNU junto con este manual ; si no, escribe a Free
.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
.\" USA.
.\"
.\" 1996-04-11 Tom Bjorkholm <tomb@mydata.se>
.\"            Primera versin escrita (1.3.86)
.\" 1996-04-12 Tom Bjorkholm <tomb@mydata.se>
.\"            Actualizada por Linux 1.3.87 y posterior
.\"
.TH MREMAP 2 "12 Abr 1996" "Linux 1.3.87" "Manual del Programador de Linux"
.SH NOMBRE
mremap \- re-mapea una direccin virtual de memoria
.SH SINOPSIS
.B #include <unistd.h>
.br
.B #include <sys/mman.h>
.sp
.BI "void * mremap(void * " old_address ", size_t " old_size
.BI ", size_t " new_size ", unsigned long " flags );
.fi
.SH DESCRIPCIN
\fBmremap\fR expande (or shrinks) unmapeado de memoria existente, movindolo
potencialmente al mismo tiempo (controlado por el argumento \fIflags\fR y
el espacio de direccionamiento virtual disponiblet).

\fIold_address\fR es la antigua direccin del bloque de memoria virtual que Ud.
quiere expandir (or shrink).  Ntese que \fIold_address\fR tiene que ser alineado
de pgina. \fIold_size\fR es el antiguo tamao del
bloque de memoria virtual.  \fInew_size\fR es al tamao requerido del
bloque de memoria virtual despus de redimensionar.

EL argumento \fIflags\fR es un bitmap de flags.

En Linux, la memoria est dividida en pginas.  Un porceso de usuario tiene (uno o)
varios segmentos de memoria virtuales lineales. Cada segmento de memoria virtual tiene uno
o ms mapeados a pginas de memoria reales (acceso correcto), los cuales pueden causar
una violacin de segmentacin si se accede incorrectamente a la memoria (por ejemplo,
escribiendo en un segmento de slo lectura).  Acceder a memoria virtual fuera de los
segmentos cusar tambin violacin de segmentacin.

\fBmremap\fR usa el esquema de tabla de pgina de Linux.  \fBmremap\fR cambia el
mapeado entre direccionamiento virtual y pginas de memoria.

.SH FLAGS
.TP
.B MREMAP_MAYMOVE
indica si la operacin debera fallar, o cambiar el direccionamiento virtual
si el redimencionado no se puede hacer con el actual direccionamiento virtual.

.SH RETURN VALUE
Si xito \fBmremap\fR devuelve un puntero a la nueva rea de memoria virtual.
Si error, \-1 es devuleto, y \fIerrno\fR est configurado apropiadamente.

.SH ERRORES
.TP
.B EINVAL
Fue dado un argumento no vlido. Lo ms probable es que \fIold_address\fR no  
aline la pgina.
.TP
.B EFAULT
"Segmentation fault." Algunas direcciones en el rango 
\fIold_address\fR to \fIold_address\fR+\fIold_size\fR es una direccn
no vlida de memroira virtual para este proceso.
No obstante puedes obtener EFAULT siempre si existen mapeados que cubren el espacio
de direcciones requerido, pero esos mapeados son de diferentes tipos.
.TP
.B EAGAIN
El segmento de memoria est bloqueado y no se puede remapear.
.TP
.B ENOMEM
El rea de memoria no puede ser expandida en la actual direccin virtual, y
el \fIMREMAP_MAYMOVE\fR flag no est puesto en \fIflags\fR. 
O, no hay suficiente memoria(virtual) disponible.
.SH "CONFORMING TO"
Esta llamada es especfica de Linux, y no debe ser usada en programas
que pretendan ser portados.  4.2BSD had a (never actually implemented)
.BR mremap (2)
call with completely different semantics.
.SH SEE ALSO
.BR getpagesize (2),
.BR realloc (3),
.BR malloc (3),
.BR brk (2),
.BR sbrk (2),
.BR mmap (2)
.P
Tu favorito libro de OS para ms informacin acerca de paginado de memoria.
(\fIModern Operating Systems\fR by Andrew S. Tannenbaum, 
\fIInside Linux\fR by Randolf Bentson,
\fIThe Design of the UNIX Operating System\fR by Maurice J. Bach.)