Unit Instance
Units API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/units/26532/?format=api
{ "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api", "source": [ "The syscall itself proceeds by setting corresponding flags depending on the flags passed in. For example, <literal>CLONE_VM</literal> maps to RFMEM (sharing of VM), etc. The only nit here is <literal>CLONE_FS</literal> and <literal>CLONE_FILES</literal> because FreeBSD does not allow setting this separately so we fake it by not setting RFFDG (copying of fd table and other fs information) if either of these is defined. This does not cause any problems, because those flags are always set together. After setting the flags the process is forked using the internal <function>fork1</function> routine, the process is instrumented not to be put on a run queue, i.e. not to be set runnable. After the forking is done we possibly reparent the newly created process to emulate <literal>CLONE_PARENT</literal> semantics. Next part is creating the emulation data. Threads in <trademark class=\"registered\">Linux</trademark> does not signal their parents so we set exit signal to be 0 to disable this. After that setting of <varname>child_set_tid</varname> and <varname>child_clear_tid</varname> is performed enabling the functionality later in the code. At this point we copy out the PID to the address specified by <varname>parent_tidptr</varname>. The setting of process stack is done by simply rewriting thread frame <varname>%esp</varname> register (<varname>%rsp</varname> on amd64). Next part is setting up TLS for the newly created process. After this <citerefentry><refentrytitle>vfork</refentrytitle><manvolnum>2</manvolnum></citerefentry> semantics might be emulated and finally the newly created process is put on a run queue and copying out its PID to the parent process via <function>clone</function> return value is done." ], "previous_source": "", "target": [ "La propia llamada al sistema procede estableciendo los indicadores correspondientes en función de los indicadores pasados. Por ejemplo, <literal>CLONE_VM</literal> mapas a RFMEM (compartir VM), etc. La única nit aquí es <literal>CLONE_FS</literal> y <literal>CLONE_FILES</literal>porque FreeBSD no permite configurar esto por separado, por lo que lo falsificamos al no configurar RFFDG (copia de la tabla fd y otra información fs) si alguno de estos está definido. Esto no causa ningún problema, porque esos indicadores siempre se colocan juntos. Después de configurar las banderas, el proceso se bifurca utilizando el <function>fork1</function> rutina, el proceso está instrumentado para que no se ponga en una cola de ejecución, es decir, no se establezca como ejecutable. Una vez finalizada la bifurcación, posiblemente volvamos a hacer el proceso recién creado para emular <literal>CLONE_PARENT</literal> semántica. La siguiente parte es crear los datos de emulación. Hilos en <trademark class=\"registered\">Linux</trademark> no envía una señal a sus padres, por lo que establecemos la señal de salida en 0 para deshabilitar esto. Después de esa configuración de <varname>child_set_tid</varname> and <varname>child_clear_tid</varname> se realiza habilitando la funcionalidad más adelante en el código. En este punto copiamos el PID a la dirección especificada por <varname>parent_tidptr</varname>. la configuración de la pila de procesos se realiza simplemente reescribiendo el marco del hilo <varname>%esp</varname> registrar (<varname>%rsp</varname> en amd64). La siguiente parte es configurar TLS para el proceso recién creado. Después de este <citerefentry><refentrytitle>vfork</refentrytitle><manvolnum>2</manvolnum></citerefentry> semantics podría ser emulado y finalmente el proceso recién creado se coloca en una cola de ejecución y copia su PID al proceso padre a través de <function>clone</function> el valor de retorno está hecho." ], "id_hash": -8898207498555174938, "content_hash": -8898207498555174938, "location": "article.translate.xml:1755", "context": "", "note": "(itstool) path: sect3/para", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 267, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 241, "source_unit": "https://translate-dev.freebsd.org/api/units/99665/?format=api", "priority": 100, "id": 26532, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=0483376cbee6cfe6", "url": "https://translate-dev.freebsd.org/api/units/26532/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2019-10-20T12:10:41.020227Z" }